2011-06-29 12 views
3

私は、Javaでhadoopを使ってクロス結合を実装しようとしています。結合の両側は十分に大きく、私はそれらのいずれかを記憶できません。私はいくつかのことを試しましたが、PIG/hiveがより簡単かもしれないことに気付きましたが、ネイティブjavaを実装したいと思います。hadoopでのクロス結合の実装

私はCompositeInputFormatがこれを行う方法かもしれないと思いますが、サンプルコードを見つけることができませんでした。

私は、データを結合するためにReducerを使用するSequenceFileInputFormatと疲れにタグ付けされたデータを送信しようとしたが、それはどちらか動作しませんでした。 (これが正しい方法であれば、より詳細な情報を提供できます)。

いくつかのサンプルコードがありますか?

答えて

1

CompositeInputFormatは、両方のデータセットをジョインキーでソートしてパーティション化する必要があります。

あなたが試したことをやりたいことは、縮小側の結合と呼ばれます。 Googleより詳しくは、Hadoop bookのディスカッションをご覧ください。値を元のデータセットでタグ付けし、そのキーを結合/外部キーにします。減速機では、2つのセットが一緒になっていて、どんな種類の参加行動をしたいのです。

Pig/Hiveでは、このような結合を行う方が簡単です。ブタの例:

A = LOAD ... 
B = LOAD ... 
JOINED = JOIN A BY $0, B BY $0; 
+1

aha!その本の例は私が探していたものです。ありがとう。 –

+0

Oreilly Hadoopの本は素晴らしい学習リソースと参考資料だと思います。 Hadoopを使用している皆さんに強くお勧めします。 –

+0

私は本を手に入れると思います。 –

関連する問題