【问题标题】:Pig Generate results in empty setPig 在空集中生成结果
【发布时间】: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) ?

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    您的数据文件以逗号分隔。默认情况下,加载函数将解析制表符分隔的记录。 您可以使用 PigStorage 加载器来读取字符分隔的记录:

    B = LOAD 'data' USING PigStorage(',');
    

    【讨论】:

    • 就是这样。谢谢!
    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    相关资源
    最近更新 更多