-2
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
                String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens()) {
              word.set(tokenizer.nextToken());
              output.collect(word, one);
            }
          }
        }

map-reduce の map 関数のこの基本的なプログラムを理解しようとしていますが、入力パラメーターは何ですか? マップの定義が見つかりませんでした。

この関数が何をしているのか誰かが教えてくれれば、それは素晴らしいことです

4

1 に答える 1

1

これは、TextInputFormat を使用した Map Reduce ジョブで使用されると想定しています。また、「1」は、1 を表すある種のグローバル スコープの IntWritable であると想定しています。

その場合、マップ関数はファイル内のすべての行に対して呼び出されます。キーは、ファイル内の行の開始位置のオフセットを表す数値です。値は行のテキスト値です。

ここでの map 関数は、StringTokenizer を使用して各行を空白で分割し、各単語と数字の 1 を出力として出力します。

入力ファイルが次のようになっているとします。

Lorem ipsum dolor sit amet
consectetur adipisicing elit
sed do eiusmod tempor incididunt

マッパーは次のキーと値を出力します:
Lorem, 1
ipsum, 1
dolor, 1
sit, 1
amet, 1 consectetur,
1
adipisicing, 1
elit, 1
sed, 1
do, 1
eiusmod, 1
tempor, 1
incididunt, 1

これはおそらくワード カウント マップ削減ジョブの一部です。

于 2012-10-21T03:22:54.707 に答える