Pig 在空集中生成结果
Posted
技术标签:
【中文标题】Pig 在空集中生成结果【英文标题】:Pig Generate results in empty set 【发布时间】:2014-03-04 19:01:26 【问题描述】:我正在编写一个相当基本的 Pig Latin 脚本,但我在执行 GENERATE 时遇到了问题。在生成之前,转储显示数据看起来像我预期的那样。但是,一旦我执行 GENERATE,结果是一个空集。根据 Pig Latin 参考手册,这似乎是正确的。当脚本运行时,我没有收到任何错误(它报告成功。)如果我在 LOAD 期间对字段使用名称或位置表示法,则会发生这种情况。
我的脚本:
B = LOAD 'data';
DUMP B;
C = FOREACH B GENERATE (int)$2, (int)$3, (int)$4;
DESCRIBE C;
DUMP C;
这是输出:
(2014-01-26 08:14:21,672,1,0,1,55,...)
(2014-01-26 08:14:23,654,1,1,0,55,...)
C: f1: int,f2: int,f3: int
(,,)
(,,)
为什么 DUMP C 的输出不产生 (1,0,1), (1,1,0) ?
【问题讨论】:
【参考方案1】:您的数据文件以逗号分隔。默认情况下,加载函数将解析制表符分隔的记录。 您可以使用 PigStorage 加载器来读取字符分隔的记录:
B = LOAD 'data' USING PigStorage(',');
【讨论】:
就是这样。谢谢!以上是关于Pig 在空集中生成结果的主要内容,如果未能解决你的问题,请参考以下文章