Reducer for the maximum temperature example

来源:互联网 发布:linux运维要学什么 编辑:程序博客网 时间:2024/06/08 10:04

import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class MaxTemperatureReducer  extends Reducer<Text, IntWritable, Text, IntWritable> {    @Override  public void reduce(Text key, Iterable<IntWritable> values,      Context context)      throws IOException, InterruptedException {        int maxValue = Integer.MIN_VALUE;    for (IntWritable value : values) {      maxValue = Math.max(maxValue, value.get());    }    context.write(key, new IntWritable(maxValue));  }}
Four formal type parameters are used to specify the input and output types, this
time for the reduce function. The input types of the reduce function must match the
output types of the map function: Text and IntWritable. And in this case, the output
types of the reduce function are Text and IntWritable, for a year and its maximum
temperature, which we find by iterating through the temperatures and comparing each
with a record of the highest found so far.

针对reduce函数也有四个形式参数类型用于指定其输入和输出类型。reduce函数的输入类型必须与

map函数的输出类型相匹配:即Text类型和IntWritable类型。在这种情况下,reduce函数的输出类型

是Text类型和IntWritable类型,对应于年份和最高气温。该最高气温是通过循环比较当前气温与已得

到的最高气温获得的。