【问题标题】:Append a value to a PIG variable将值附加到 PIG 变量
【发布时间】: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


【解决方案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'" 的值
  • 明白了;不幸的是,我不知道如何解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多