私はいくつかの処理を行い、関連するカウントを持つcity:fruitの複合キー(WritableComparableを実装)を生成します。今、私は、果物の種類ごとに最高の数を持つ都市を決定する第二のmapreduceの仕事でそれをチェーンしたいと思います。compositekeyとsortによるJava Mapreduceグループ
のMapReduceジョブ1からのサンプル複合キー出力:
+---------------------+-------+
| city:fruit composite| count |
+---------------------+-------+
| london:apples | 3 |
+---------------------+-------+
| london:bannanas | 2 |
+---------------------+-------+
| london:oranges | 15 |
+---------------------+-------+
| charleston:apples | 20 |
+---------------------+-------+
| charleston:bannanas | 1 |
+---------------------+-------+
| charleston:oranges | 3 |
+---------------------+-------+
| chicago:bannanas | 17 |
+---------------------+-------+
| chicago:apples | 5 |
+---------------------+-------+
| chicago:oranges | 11 |
+---------------------+-------+
ジョブ2から所望の出力:
+------------+----------+
| city | fruit |
+------------+----------+
| london | oranges |
+------------+----------+
| charleston | apples |
+------------+----------+
| chicago | bannanas |
+------------+----------+
私はこれを実現するにはどうすればよいですか?私のSQLの考え方では、複合キーは2つの列、1つは都市、もう1つは果物です。私はフルーツでグループ化し、並べ替えて、最も高い数の列をつかむ。私はそれがmapreduceの世界にどのように翻訳されるのか理解できません。何かアドバイスをいただければ幸いです!すべてのあなたが持って減らす段階で
これはまさに正解でした。ありがとう!減速機に送る前にfuit:countコンポジットをソートする方法はありますか? – ph34r
はい、これはもう少し書くだけです。新しい質問をしてください。あなたがここにリンクを提供すれば、私はそれに答えようとします。 –
しかし、あなたにヒントを与えるために、SecondaryOrderingはあなたが検索したいキーワードです。これはマップフェーズではソートされませんが、還元フェーズの前に –