将值附加到 PIG 变量
Posted
技术标签:
【中文标题】将值附加到 PIG 变量【英文标题】:Append a value to a PIG variable 【发布时间】:2015-04-09 21:14:31 【问题描述】:我需要为 PIG 中声明的变量附加一个值。
%declare DESC 'Test/nimmiv/pig'
raw = LOAD 'test.log' USING PigStorage('\t') AS (a1:chararray, a2:chararray, a3:long);
/* 做任何 PIG 处理 */
值 = FOREACH 原始 GENERATE $0;
TMP = FOREACH 原始 GENERATE $1 AS 路径;
PATH = 不同的 TMP;
/* dump PATH 只会给我 (tmp) ,我需要将此值附加到现有值 Test/nimmiv/pig=>Test/nimmiv/pig/tmp */
将值存储到“$DESC/$PATH”中;
这会引发未定义的别名错误。将此值附加到现有路径的最简单方法是什么。
【问题讨论】:
您能否提供一些示例输入和所需的输出? 所以样本和我的问题一样说 i/p=>%declare DESC 'Test/nimmiv/pig' => o/p => /Test/nimmi/pig/path_0203 where path _0203是在中间 pig 步骤中获得的值。 那么你想用Pig动态创建输出路径吗?这真的行不通。唯一想到的是 Multistorage (pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/…),但不知道这是否仍然是 Pig 中的东西。 【参考方案1】:未定义的别名是“value”,之前似乎没有引入,并且在您尝试对其进行 STORE 之前必须已经存在。
【讨论】:
这只是一个错字。我在变量值中有一些价值。所以我的问题是如何将元组值附加到声明的变量值。【参考方案2】:您可以按照http://pig.apache.org/docs/r0.14.0/basic.html#union 中的说明使用 UNION。
例子:
combined = UNION value, path;
【讨论】:
联合运算符用于合并两个或多个关系。我正在寻找一个值附加到一个定义的变量。在上述场景中,我试图将值 tmp => PATH.$0 附加到 'Test/nimmiv/pig' => "%declare DESC 'Test/nimmiv/pig'" 的值 明白了;不幸的是,我不知道如何解决这个问题以上是关于将值附加到 PIG 变量的主要内容,如果未能解决你的问题,请参考以下文章