如何在 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 中将变量与一些硬编码值连接起来的主要内容,如果未能解决你的问题,请参考以下文章

iOS硬编解码相关知识

如何将硬编码文本与标签中的绑定文本连接起来? [复制]

WebRTC[44] - WebRTC 在安卓端的视频硬编硬解策略详解

WebRTC[44] - WebRTC 在安卓端的视频硬编硬解策略详解

mybeats与jdbc问题分析

如何在Jmeter中将“嵌套”变量与字符串连接起来