Pigはここで正しいことを行っており、データセットを統合しています。すべてが1つのファイルであることは、Hadoopの1つのデータセットを意味するわけではありません... Hadoopの1つのデータセットは通常、フォルダーです。ここではreduceを実行する必要がないため、実行されません。
Map AND Reduceを実行するには、Pigをだます必要があります。私が通常これを行う方法は次のとおりです。
set default_parallel 1
...
A = UNION Message_1,Message_2,Message_3,Message_4;
B = GROUP A BY 1; -- group ALL of the records together
C = FOREACH B GENERATE FLATTEN(A);
...
すべてのGROUP BY
レコードをグループ化すると、FLATTEN
そのリストが爆発して元に戻ります。
ここで注意すべきことの1つは、これは実行することとそれほど変わらないということです。
$ hadoop fs -cat msg1.txt msg2.txt msg3.txt msg4.txt | hadoop fs -put - union.txt
(これは、すべてのテキストを連結し、それを新しいファイルとしてHDFSに書き戻すことです)
これはまったく並行していませんが、1つのレデューサーを介してすべてのデータを集中させることもできません。