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函数的基本程序,输入参数是什么?我找不到地图的定义。
如果有人能告诉我这个功能是做什么的话会很棒
答案 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
这可能是字数统计减少工作的一部分。