【发布时间】: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 中的东西。
标签: hadoop apache-pig