我如何在 PIG 中连接一个变量和一些硬编码值
A = LOAD 'data' as (f1:chararray, f2:chararray, f3:chararray);
X = FOREACH A GENERATE CONCAT("BIG",f3);
预期输出:
( Apache ,开放,大源)
(hadoop, map ,BIGreduce)
( pig , pig ,BIGlatin)
最佳答案
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)
关于hadoop - 我如何在 PIG 中连接一个带有硬编码值的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28849014/