1

Hadoop MapReduce の使用

入力としてリストがあります:

  1. B

そして、それ自体でリストのデカルト積を取得したい:

  • A => A,f(A,A)
  • A => B,f(A,B)
  • A => C,f(A,C)
  • B => A,f(B,A)
  • B => B,f(B,B)
  • B => C,f(B,C)
  • C => A,f(C,A)
  • C => B,f(C,B)
  • C => C,f(C,C)

f() は、キーのペアの値を与える関数です。

JavaでHadoop MapReduceを使用して簡単にそれを行うにはどうすればよいですか?

もちろん、入力リスト全体をメモリに保持することはできません。

ありがとう!!

4

1 に答える 1

1

Java map reduce で実装できます。それぞれ分割 3 と 4 を持つ 2 つのファイル A と B の間でクロス積を実行したいとします。次に、2 つのデータセットを分割するカスタム入力形式を記述し、データのサブセットごとに SPLIT があることを確認する必要があります。

したがって、分割は次のようになります。

 A1 X B1
 A1 X B2
 A1 X B3
 A1 X B4
 A2 X B1
 A2 X B2
 A2 X B3
 A2 X B4
 A3 X B1
 A3 X B2
 A3 X B3
 A3 X B4

リンクhttps://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch5/CartesianProduct.javaを参照してください。

于 2013-07-01T10:21:38.470 に答える