【问题标题】:how do I concat a variable with some hardcode value in PIG如何在 PIG 中将变量与一些硬编码值连接起来
【发布时间】:2015-03-04 07:45:57
【问题描述】:

如何在 PIG 中将变量与一些硬编码值连接起来

A = LOAD 'data' as (f1:chararray, f2:chararray, f3:chararray);

X = FOREACH A GENERATE CONCAT("BIG",f3);

预期输出:

(apache,open,BIGsource)

(hadoop,map,BIGreduce)

(猪,猪,大拉丁)

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    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)
    

    【讨论】:

    • 我输入数据为“apache”、“open”、“source”,如果我与硬代码值连接我将输出作为 Big“source”但如何从输入数据中删除“”?
    • 我实际上从源代码本身中删除了引号。您的解决方案也有效
    猜你喜欢
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2011-05-13
    • 2014-03-19
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多