云计算分布式框架 Hadoop

107课时
3K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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));
        }
    }
}