-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 作业中使用的。我还假设“一”是某种全局范围的 IntWritable 代表第一。

在这种情况下,文件中的每一行都会调用 map 函数。键是一个数字,表示文件中行首的偏移量。该值是该行的文本值。

这里的 map 函数使用 StringTokenizer 在空白处分割每一行,并发出每个单词和第一个作为其输出。

假设您的输入文件如下所示:

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 回答