PIG生成空行

时间:2016-05-12 21:40:31

标签: hadoop null apache-pig hdfs cloudera

我有一个简单的生猪工作,可生成一列数据。为了消除输出中的空行,我编写了以下命令:

items = FOREACH inputs GENERATE item;
items = DISTINCT items;
items = FILTER items BY ($0 IS NOT NULL);
items = FILTER items BY NOT IsEmpty(TOBAG($0));
STORE items INTO '$output/items';

当我尝试消除NULL和空条目时,我仍然在HDFS的输出文件中得到空行。

当我用,

替换最后一行(即STORE)时,值得注意
DUMP items;

终端输出未显示空白输出行。

对此问题的根本原因的任何评论都非常感谢。

1 个答案:

答案 0 :(得分:0)

自己修正了。

事实证明,Pig解析器将空白解析输入转换为换行符。因此,以下结果最终起作用(见第三行):

items = FOREACH inputs GENERATE item;
items = DISTINCT items;
items = FOREACH items GENERATE ($0=='\n'?NULL:$0);
items = FILTER items BY ($0 IS NOT NULL) AND (NOT IsEmpty(TOBAG($0)));
STORE items INTO '$output/items';