2017-10-15 7 views
-1

入力ファイルがある場合の量:1,1,2,2,3,4,4,4,5,5,5,5,6,6,6、その後のMapReduceの出力は、(一意の整数{1,2,3,4,5,6}の組の、すなわち大きさ)であるべきです。のMapReduce:数字のファイルが与えられると、出力の異なる/固有番号

私は上記を実装するのに助けが必要です。私はmap()にヌル値とヌル値をそれぞれ出すことで重複を除外し、同様にキーとヌル値をreduce()に出力して結果ファイル/ consoleに出力できることを知っています。

しかし、別の番号の番号を直接取得する必要がある場合は、どうすればこの問題に取り組むことができますか?

現在の実装では、SetをMapperの出力として渡し、Reducerで渡されたすべてのSetを結合し、その結果のSetの数を返します。これは、ライブラリ固有の(例えば、Hadoop)実装の質問よりも、設計上の疑問であることに注意してください。

+0

素晴らしいサウンドをスパークできる場合(単純な)メソッドが存在します。さて、コードはどこですか? Stackoverflowはコード作成サービスではありません –

+0

私が知っていることとこれまでに理解できたことの詳細を少し追加しました。 – Daksh

+0

なぜこれを行うにはマップの削減が必要ですか?特に* reduce *?重複をフィルタリングしてそれらの量を書き込むのはマップのみの操作です –

答えて

0

マッパーを使用してハッシュセットを構築します。 IntWritableとNullWritableの出力を行います。

すべての入力値をセットに追加します。

ハッシュセットのサイズを書き出します。

Reduce Tasksの数は、不要であるため、0に設定してください。


リダクターを使用する必要がある場合は、マッパーから(null、value)を出力します。

上記と同じ操作を行います。


代替あなたはハイブ、豚を使用、または

関連する問題