最大月温度减速器代码


package com.ibm.dw61;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class MaxTempReducer extends
     Reducer<Text, IntWritable, Text, IntWritable> {
   public void reduce(Text key, Iterable<IntWritable> values, Context context)
              throws IOException, InterruptedException {
       int maxTemp = Integer.MIN_VALUE;
       for (IntWritable value: values) {
       maxTemp = Math.max(maxTemp, value.get());
       }
       context.write(key, new IntWritable(maxTemp));
   }
}

问题:

1) int maxTemp = Integer。MIN_VALUE <-----这一行似乎是maxTemp变量的初始化。为什么编码器不将其初始化为零?整数。MIN_VALUE给出-2147483648。最低温度不可能达到零下100度。

2)上下文。write(key, new IntWritable(maxTemp) <------这是最终结果。关键字是月,maxTemp是该月的最高温度。为什么"新"字需要maxTemp,而不是关键字(月)?

1) int maxTemp = Integer。MIN_VALUE

int MIN_VALUE

保存最小值的常数int类型可以有-231.

2)上下文。write(key, new IntWritable(maxTemp)

为什么Hadoop需要像Text或IntWritable这样的类,而不是String或Integer?

希望对大家有所帮助

相关内容

  • 没有找到相关文章

最新更新