将值附加到 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 变量的主要内容,如果未能解决你的问题,请参考以下文章

将值附加到 Python 字典

如何将值附加到犰狳矩阵?

将值附加到现有行

将值附加到多维数组 PHP

将值附加到 URL 的表单

python 将值附加到列表