代码之家  ›  专栏  ›  技术社区  ›  marjun

如何在PIG中用硬编码值连接变量

  •  1
  • marjun  · 技术社区  · 11 年前

    如何在PIG中用硬编码值连接变量

    A=加载“数据”为(f1:字符数组,f2:字符数组;f3:字符数组);

    X=FOREACH A GENERATE CONCAT(“大”,f3);

    预期输出:

    (apache,开放,BIGsource)

    (hadoop,地图,BIGreduce)

    (猪,猪,BIGlatin)

    1 回复  |  直到 11 年前
        1
  •  1
  •   Sivasakthi Jayaraman    11 年前

    Pig不支持双引号,因此需要将硬编码值从双引号更改为单引号。

    X = FOREACH A GENERATE f1,f2,CONCAT('BIG',f3);
    

    更新:
    您可以使用 REPLACE 函数从输入中删除双引号。
    下面的示例

    数据

    "apache","open","source"
    "hadoop","map","reduce"
    "pig","pig","latin"
    

    PigScript:

    A = LOAD 'data' USING PigStorage(',') AS (f1:chararray, f2:chararray, f3:chararray);
    B = FOREACH A GENERATE REPLACE(f1,'"',''),REPLACE(f2,'"',''),CONCAT('BIG',REPLACE(f3,'"',''));
    DUMP B
    

    输出:

    (apache,open,BIGsource)
    (hadoop,map,BIGreduce)
    (pig,pig,BIGlatin)