MapReduce编程案例:求部门的工资总额

1、员工表

 SQL:select deptno,sum(sal) from emp group by deptno;

2、分析数据处理的过程

3、开发程序

项目结构:

SalaryTotalMapper.java
package com.salarytotal;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class SalaryTotalMapper extends Mapper<LongWritable, Text, IntWritable,IntWritable> {@Overrideprotected void map(LongWritable k1, Text v1, Context context) throws IOException, InterruptedException {// 数据:7654,MARTIN,SALESMAN,7698,1981/9/28,1250,1400,30String data = v1.toString();//分词String[] words = data.split(",");//输出:k2 部门号   v2员工的工资context.write(new IntWritable(Integer.parseInt(words[7])),new IntWritable(Integer.parseInt(words[5])));}
}
SalaryTotalReducer.java
package com.salarytotal;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class SalaryTotalReducer extends Reducer<IntWritable,IntWritable,IntWritable,IntWritable> {@Overrideprotected void reduce(IntWritable k3, Iterable<IntWritable> v3, Context context) throws IOException, InterruptedException {// 求v3求和int total = 0;for(IntWritable v:v3){total = total + v.get();}//输出  k4  部门号    v4是部门的工资总额context.write(k3, new IntWritable(total));}
}
SalaryTotalMain.java
package com.salarytotal;import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class SalaryTotalMain {public static void main(String[] args) throws Exception{// 1.创建任务、指定任务的入口Job job  = Job.getInstance();job.setJarByClass(SalaryTotalMain.class);// 2.指定任务的map和map输出的数据类型job.setMapperClass(SalaryTotalMapper.class);job.setMapOutputKeyClass(IntWritable.class);// k2job.setMapOutputValueClass(IntWritable.class);// v2// 3.指定任务的reducer和reducer输出的类型job.setReducerClass(SalaryTotalReducer.class);job.setOutputKeyClass(IntWritable.class);// k4job.setOutputValueClass(IntWritable.class);// v4// 4.指定任务输入路径和输出路径FileInputFormat.setInputPaths(job,new Path(args[0]));FileOutputFormat.setOutputPath(job,new Path(args[1]));// 5.执行任务job.waitForCompletion(true);}
}

将项目打包成jar文件,并运行

MapReducer——MapReduce编程案例:求部门的工资总额(2)相关推荐

  1. 【赵强老师】MapReduce编程案例之求工资总额

    先看视频. [赵强老师]MapReduce编程案例之求工资总额 Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上, ...

  2. 大数据 - MapReduce编程案例 -BH3

    MapReduce编程案例 用mapreduce解决问题的关键是确定key,只有key相同的结果才会到同一个reduce中进行处理 默认分区使用HashPartitoner,hashCode%redu ...

  3. MapReduce编程(四) 求均值

    一.问题描述 三个文件中分别存储了学生的语文.数学和英语成绩,输出每个学生的平均分. 数据格式如下: Chinese.txt 张三 78 李四 89 王五 96 赵六 67 Math.txt 张三 8 ...

  4. 云计算实验1 基于Hadoop的云计算平台配置和map-reduce编程案例

    一. 实验目的 本实验考察学生Hadoop平台下的环境配置.分布式文件存储操作和管理以及基于Hadoop的分布式编程的设计与实现. 二. 实验环境 Linux的虚拟机环境.线上操作视频和实验指导手册 ...

  5. MapReduce编程之求每个学生的最高成绩及对应科目(使用GroupingComparator和SortComparator)

    stuscore.csv 1,鸿飞,语文,84 2,鹏海,语文,85 3,铭晨,语文,86 4,霑千昌,语文,87 5,智宇,语文,88 6,景彰,语文,89 7,辰铭,语文,90 8,曜灿,语文,9 ...

  6. MapReduce编程之求每门科目的前三名(重写student类中的compareTo方法)

    stuscore.csv 1,鸿飞,语文,84 2,鹏海,语文,85 3,铭晨,语文,86 4,霑千昌,语文,87 5,智宇,语文,88 6,景彰,语文,89 7,辰铭,语文,90 8,曜灿,语文,9 ...

  7. MapReducer——使用序列化求部门工资总额(4)

    举例2:使用MapReduce序列化重写"求部门工资的总额的例子 数据处理过程如图: 代码实现: EmpMapper.java package com.serializable.salary ...

  8. MR的案例:求每个部门的工资总额

    MR的案例:求每个部门的工资总额 1.表:员工表emp SQL: select deptno,sum(sal) from emp group by deptno; DEPTNO   SUM(SAL) ...

  9. MapReduce经典案例总结

    MapReduce经典案例总结 首先得搭好hadoop环境,windows搭好单机环境 1.根据手机号统计上网流量,统计上行流量.下行流量和总流量 数据如下,文件 flow.log,上传到hadoop ...

最新文章

  1. # 命令行新建 job 错误: ORA-01008 并非所有变量都已绑定 。
  2. AI视觉组仙人一步之模型量化
  3. div+css中命名规范
  4. SAP-FICO学习笔记
  5. c语言小项目---通讯录2.0
  6. 判断画布中有重复纪录
  7. 10. Browser 对象 - Location 对象(2)
  8. 人脸识别实名制管理,推动智慧工地建设发展
  9. Ruby 之Gem kaminari 分页
  10. Solr搜索引擎原理
  11. 程序员看来都羡慕:一个寒门博士的致谢及其女友回复
  12. NIN:Network in Network
  13. unity中使用AO贴图和自发光emission的简单应用
  14. Ubuntu中使用RoboMongo实现MongoDB的可视化
  15. POJ - 1723 Soldiers 士兵站队 排序+中位数
  16. 利用自定义方法显示数组中的全部数据
  17. API接口文档利器:Swagger
  18. Double_array trie
  19. Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置
  20. javaswing实现扫雷游戏

热门文章

  1. 2019榆次初三计算机考试时间,2019晋中中考总分是多少 录取分数线是多少
  2. 光环国际PMP:项目经理时间管理
  3. html抽奖盘相邻块颜色不一样,实战实现一个h5转盘抽奖页面,谈谈代码实现,顺便谈一下优化和数据处理...
  4. (ROYOLE)全球首款柔性屏开发套件,柔宇RoKit终于来了!
  5. MySQL 计算百分比
  6. 方正台式电脑U盘重装系统
  7. 【鳄鱼小顽皮爱洗澡游戏攻略】SWAMPY关卡 全部视频攻略集合
  8. 建模设计类,电脑配置,各个价格推荐
  9. 电表远程抄表系统在PLC工业设备上的应用---原理1
  10. Eclipse 菜单介绍