0

ファイルのコレクションがあります。各ファイルには、著者の名前と彼が使用した単語が含まれています。今、各著者の上位 N 語をカウントするための map-reduce コードを作成しようとしています。注意が必要なのは、ファイルに複数の作成者が含まれている可能性があることです。では、map-reduce フレームワークをどのように設計すればよいでしょうか? 疑似コードと少しの説明で十分です。ありがとう

4

1 に答える 1

0

1 つの MR ジョブで、作成者 + 単語の複合キーと値カウントを作成することにより、各作成者が使用する単語をカウントします。

2 番目の MR ジョブは、これらのペア (author+word,count) を読み取り、それらを (author+count,word+count) にマップします。これらのキーを最初に作成者、次にカウント (最大から最小) で並べ替えるコンパレータと、カウントに関係なく同じ作成者の 2 つのキーを同じリデュース グループにあるものとして扱うグルーパーを記述します。作成者のすべてのペアが同じパーティションに移動することを確認するには、おそらくパーティショナーが必要になるでしょう。その後、リデューサーは作成者ごとに 1 回呼び出され、値 (単語 + カウント) は最初に最大カウントの iterable によって提供されます。レデューサーでは、Iterable の最初の N レコードから作成者、単語、カウントを書き込むだけです。

于 2013-05-03T03:25:02.333 に答える