3分钟
实现Reduce类
Reduce类实现Reducer接口中的Reduce方法,输入参数中的key,values是由Map任务输出的中间结果,values是一个Iterator,遍历这个Iterator,就可以得到属于同一个key的所有value。此处,key是一个单词,value是词频。只需要将所有的value相加,就可以得到这个单词总的出现次数。
//定义Reduce类输入参数中的 key, values 是由 Map 任务输出的中间结果,values 是一个 Iterator
public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text,
IntWritable>
{
//reduce方法,key文本,values 是一个 Iterator
public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text,
IntWritable> output, Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
//得到这个单词总的出现次数
output.collect(key, new IntWritable(sum));
}
}
}
学员评价