我有一个简单的生猪工作,可生成一列数据。为了消除输出中的空行,我编写了以下命令:
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;
终端输出未显示空白输出行。
对此问题的根本原因的任何评论都非常感谢。
答案 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';