接上篇blog下面来写reduce函数。reduce函数负责将key相同的单词合并,并将对应的value值放入一个集合中,对集合中的数值进行累加。所以map函数的输出到达reduce的输入时,就变成了键值对列表的集合。
由于reduce函数也是分布式并行计算的,则需要写一个 MyReducer类去继承Mapreduce框架提供的对reduce函数定义的Reducer类,然后对该类中的reduce函数进行重写。
MyReducer类
MyReducer类继承自reducer类,负责重写父类Reducer中的reduce函数
package com.qst.test;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
@Override
protected void reduce(Text key, Iterable<IntWritable> values,
Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedEx