如何在 PIG 中将变量与一些硬编码值连接起来
Posted
技术标签:
【中文标题】如何在 PIG 中将变量与一些硬编码值连接起来【英文标题】:how do I concat a variable with some hardcode value in PIG 【发布时间】:2015-03-04 07:45:57 【问题描述】:A = LOAD 'data' as (f1:chararray, f2:chararray, f3:chararray);
X = FOREACH A GENERATE CONCAT("BIG",f3);
预期输出:
(apache,open,BIGsource)
(hadoop,map,BIGreduce)
(猪,猪,大拉丁)
【问题讨论】:
【参考方案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”但如何从输入数据中删除“”? 我实际上从源代码本身中删除了引号。您的解决方案也有效以上是关于如何在 PIG 中将变量与一些硬编码值连接起来的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC[44] - WebRTC 在安卓端的视频硬编硬解策略详解