求平均分的关键在于,利用mapreduce过程中,一个key聚合在一起,输送到一个reduce的特性。
假设三门课的成绩如下:
china.txt
张三 78
李四 89
王五 96
赵六 67
english.txt
张三 80
李四 82
王五 84
赵六 86
math.txt
张三 88
李四 99
王五 66
赵六 72
mapreduce如下:
public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
// 实现map函数
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
// 将输入的纯文本文件的数据转化成String
String line = value.toString();
// 将输入的数据首先按行进行分割
StringTokenizer tokenizerArticle = new StringTokenizer(line, "\n");
// 分别对每一行进行处理
wh