mapreduce 用語でアルゴリズムを表現するのに問題があります。
2 つの大きな入力テキスト ファイルがあります。最初のファイルを「R」、2 番目のファイルを「P」と呼びましょう。通常、R は P よりもはるかに大きいですが、どちらも大きいです。
mapreduce 以外のアプローチでは、P の内容がメモリに読み込まれ (ハッシュされ)、R のすべての行に対して反復処理が開始されます。R の行は単なる文字列であり、部分文字列のいずれかを確認したいR では、P の任意の文字列に一致します。
この問題は、bigfile 内の単語を grep するのと非常によく似ています。問題は、単語のリストが非常に大きいため、マップ ルーチンでそれらをハードコーディングできないことです。
私が直面している問題は、P ファイルのすべての分割が R ファイルの分割ごとにマップ ジョブになるようにする方法がわからないことです。したがって、これらの分割を想定すると、次のようになります。
R = R1, R2, R3;
P = P1, P2
6 つのマップ ジョブには、次の分割が含まれている必要があります。
(R1, P1) (R1, P2);
(R2, P1) (R2, P2);
(R3, P1) (R3, P2);
この問題を mapreduce で表現するとどうなりますか?
ありがとう。