我有一个pig脚本,它生成四个结果,我想将它们全部存储在一个文件中。我试着用 UNION
,但是当我使用 UNION
我得到四个文件part-m-00000,part-m-00001,part-m-00002,part-m-00003。我能得到一个文件吗?
这是Pig的剧本
A = UNION Message_1,Message_2,Message_3,Message_4 into 'AA';
在aa文件夹中,我得到了上面提到的4个文件。我不能得到一个包含所有条目的文件吗?
我有一个pig脚本,它生成四个结果,我想将它们全部存储在一个文件中。我试着用 UNION
,但是当我使用 UNION
我得到四个文件part-m-00000,part-m-00001,part-m-00002,part-m-00003。我能得到一个文件吗?
这是Pig的剧本
A = UNION Message_1,Message_2,Message_3,Message_4 into 'AA';
在aa文件夹中,我得到了上面提到的4个文件。我不能得到一个包含所有条目的文件吗?
2条答案
按热度按时间a9wyjsp71#
pig在这里做的是正确的,并且正在联合数据集。在hadoop中,所有文件都是一个并不意味着一个数据集。。。hadoop中的一个数据集通常是一个文件夹。既然它不需要在这里运行reduce,它就不会。
你需要愚弄Pig运行Map和减少。我通常的做法是:
这个
GROUP BY
将所有记录分组,然后FLATTEN
把那张单子翻出来。这里需要注意的一点是,这与执行以下操作没有太大区别:
(这是连接所有文本,然后将其作为新文件写回hdfs)
这根本不是并行的,但也不是通过一个减速机将所有数据汇集到一起。
dwthyt8l2#
您尝试过设置默认的\u parallel属性吗?