MapReduce学生成绩(五)
MapReduce学生成绩(五)
小贾嗯嗯题目描述
关于对于学生成绩相关的练习题,之前是一个入门级别的需求,现在对这些需求进行增强,首先看数据的改变:
1 | computer,huangxiaoming,85,86,41,75,93,42,85 |
一、数据解释
数据字段个数不固定:
第一个是课程名称,总共四个课程,computer,math,english,algorithm,
第二个是学生姓名,后面是每次考试的分数
二、统计需求:
1、统计每门课程的参考人数和课程平均分
2、统计每门课程参考学生的平均分,并且按课程存入不同的结果文件,要求一门课程一个结果文件,并且按平均分从高到低排序,分数保留一位小数
*3、求出每门课程参考学生成绩最高的2个学生的信息:课程,姓名和平均分*
三、解题思路
mapper阶段的输出:
key: CourseScore
value: NullWritable
reducer阶段的输出:
key: CourseScore
value:NullWritable
实现难点:
分组条件(课程) 和 排序规则(课程,成绩)不一致,所以需要自定义分组
自定义分组的代码 CourseScoreGroupComparator.java 在 MR 程序里头
四、代码实现
1 | package com.xiaojia.stu5; |
1 | package com.xiaojia.stu5; |
1 | package com.xiaojia.stu5; |
1 | package com.xiaojia.stu5; |
1 | package com.xiaojia.stu5; |
1 | algorithm huangjiaju 82.0 |
评论
匿名评论隐私政策