1

私は豚とHadoopの初心者です。この単純な豚のスクリプトの舞台裏で何が起こっているのかを理解しようとしています。私はいくつかのデータを読み込んで、それを3つの新しいリレーションに分割し、それぞれを異なるディレクトリに保存しています。このスクリプトは、psuedo分散Hadoopインストールで1つのマップのみのジョブとして実行されます。

私は、これをプレーンJava Map/Reduceで単一のマップのみのジョブに実装する方法を模索してきました。フィルタリング/分割を実現するのは簡単ですが、異なるキー/値のペアを異なる出力に送信するためのマップのみのジョブを取得する方法がわかりません。考えてみると、1つの完全なMap/Reduceジョブで複数の場所に出力を送信する方法すらわかりません。

rawTweets = LOAD 'geotaggedTweets' USING PigStorage(',') AS (...);

SPLIT rawTweets INTO usTweets IF country == 'US', gbTweets IF country == 'GB', idTweets IF country == 'ID';

STORE usTweets INTO 'testUSTweets' USING PigStorage(',');
STORE gbTweets INTO 'testGBTweets' USING PigStorage(',');
STORE idTweets INTO 'testIDTweets' USING PigStorage(',');

編集:うーん...私はそれをもう一度やりました。SOの質問を作成して送信するプロセス全体を完了するまで、質問に対する回答を思い付くことができないようです。私が探しているHadoopクラスはMultipleOutputsです

4

0 に答える 0