map减少java程序的澄清

时间:2012-10-21 02:22:08

标签: hadoop mapreduce

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函数的基本程序,输入参数是什么?我找不到地图的定义。

如果有人能告诉我这个功能是做什么的话会很棒

1 个答案:

答案 0 :(得分:1)

我假设这是在使用TextInputFormat的Map Reduce作业中使用的。我还假设“one”是某种全局范围的IntWritable,代表第一。

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

这里的map函数是使用StringTokenizer在空格上分割每一行,并将每个单词和第一个单词作为输出。

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

Lorem ipsum dolor sit amet
奉献精神 sed do eiusmod tempor incididunt

映射器将发出以下键和值:
Lorem,1
ipsum,1
dolor,1
坐,1 amet,1
consectetur,1
adipisicing,1
elit,1
sed,1
做,1
eiusmod,1
临时,1 incididunt,1

这可能是字数统计减少工作的一部分。