hadoop mapreduce求平均分
来源:互联网 发布:作家助手之类软件 编辑:程序博客网 时间:2024/04/29 17:47
求平均分的关键在于,利用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"); // 分别对每一行进行处理 while (tokenizerArticle.hasMoreElements()) { // 每行按空格划分 StringTokenizer tokenizerLine = new StringTokenizer(tokenizerArticle.nextToken()); String strName = tokenizerLine.nextToken();// 学生姓名部分 String strScore = tokenizerLine.nextToken();// 成绩部分 Text name = new Text(strName); int scoreInt = Integer.parseInt(strScore); // 输出姓名和成绩 context.write(name, new IntWritable(scoreInt)); } } } public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { // 实现reduce函数 public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; int count = 0; Iterator<IntWritable> iterator = values.iterator(); while (iterator.hasNext()) { sum += iterator.next().get();// 计算总分 count++;// 统计总的科目数 } int average = (int) sum / count;// 计算平均成绩 context.write(key, new IntWritable(average)); } }
输出如下:
张三82李四90王五82赵六75
- hadoop mapreduce求平均分
- Hadoop(三)——利用MapReduce求平均成绩
- excel求平均分
- 1009: 求平均分
- 1007: 求平均分
- 求平均分
- 录入成绩求平均分
- Hadoop中求平均成绩
- Hadoop MapReduce之学生平均成绩
- 20 求平均年龄 各班平均分
- 求低于平均分的人数
- zzuli OJ 1009: 求平均分
- C求多人多门课平均分
- 应用:二维数组求平均分
- 求参赛者的平均分,取最大值
- 求最高分、最低分、平均分的程序
- Hadoop/MapReduce移动平均:时间序列数据平均值
- 编写MapReduce程序示例——求平均成绩
- struts.properties作用及配置Demo
- CC2541 BLE源码阅读知识积累之OSAL小结
- C指针--QQ群问答
- uint64转double精度会丢失
- VC实现录音,放音,保存,打开功能
- hadoop mapreduce求平均分
- 使用 jdbc 连接数据库的实例(mysql)
- 【销毁窗口】TN017: Destroying Window Objects
- How to Recover from a Lost or Deleted Datafile with Different Scenarios [ID 198640.1]
- 屏幕分辨率
- hdu 3549 Flow Problem
- 内核kernel以及根文件系统rootfs是如何映射到对应的nand flash
- jsp监听器Listener
- 静态菜单