MapReduce案例学习开篇
2015-09-20 15:37
204 查看
案例学习背景:客户资源有两张表,一个用户表,一个部门信息表,分别如下:
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
使用mapreduce处理以下几个问题:
1) 求各个部门的总工资;
2) 求各个部门的人数和平均工资;
3) 求每个部门最早进入公司的员工姓名;
4) 求各个城市的员工的总工资;
5) 列出工资比上司高的员工姓名及其工资;
6) 列出工资比公司平均工资要高的员工姓名及其工资;
7) 列出名字以J开头的员工姓名及其所属部门名称;
8) 列出工资最高的头三名员工姓名及其工资;
9) 将全体员工按照总收入(工资+提成)从高到低排列,要求列出姓名及其总收入。
预处理,将需要处理的数据导出成文件,并使用制表符进行分割。导出的数据文件为emp,该文件内容形如:
empno ename
job mgr
hiredate sal
comm deptno
7369 SMITH
CLERK 7902
1980-12-17 800
20
7499 ALLEN
SALESMAN 7698
1981-02-20 1600
300 30
7521 WARD
SALESMAN 7698
1981-02-22 1250
500 30
7566 JONES
MANAGER 7839
1981-04-02 2975
20
7654 MARTIN
SALESMAN 7698
1981-09-28 1250
1400 30
7698 BLAKE
MANAGER 7839
1981-05-01 2850
30
7782 CLARK
MANAGER 7839
1981-06-09 2450
10
7839 KING
PRESIDENT 1981-11-17
5000 10
7844 TURNER
SALESMAN 7698
1981-09-08 1500
0 30
7900 JAMES
CLERK 7698
1981-12-03 950
30
7902 FORD
ANALYST 7566
1981-12-03 3000
20
7934 MILLER
CLERK 7782
1982-01-23 1300
10
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
使用mapreduce处理以下几个问题:
1) 求各个部门的总工资;
2) 求各个部门的人数和平均工资;
3) 求每个部门最早进入公司的员工姓名;
4) 求各个城市的员工的总工资;
5) 列出工资比上司高的员工姓名及其工资;
6) 列出工资比公司平均工资要高的员工姓名及其工资;
7) 列出名字以J开头的员工姓名及其所属部门名称;
8) 列出工资最高的头三名员工姓名及其工资;
9) 将全体员工按照总收入(工资+提成)从高到低排列,要求列出姓名及其总收入。
预处理,将需要处理的数据导出成文件,并使用制表符进行分割。导出的数据文件为emp,该文件内容形如:
empno ename
job mgr
hiredate sal
comm deptno
7369 SMITH
CLERK 7902
1980-12-17 800
20
7499 ALLEN
SALESMAN 7698
1981-02-20 1600
300 30
7521 WARD
SALESMAN 7698
1981-02-22 1250
500 30
7566 JONES
MANAGER 7839
1981-04-02 2975
20
7654 MARTIN
SALESMAN 7698
1981-09-28 1250
1400 30
7698 BLAKE
MANAGER 7839
1981-05-01 2850
30
7782 CLARK
MANAGER 7839
1981-06-09 2450
10
7839 KING
PRESIDENT 1981-11-17
5000 10
7844 TURNER
SALESMAN 7698
1981-09-08 1500
0 30
7900 JAMES
CLERK 7698
1981-12-03 950
30
7902 FORD
ANALYST 7566
1981-12-03 3000
20
7934 MILLER
CLERK 7782
1982-01-23 1300
10
相关文章推荐
- HTTPS协议和SSL/TLS协议
- IOS - NSURLConnection大文件下载
- Linux中fork的使用(03)---使用if...else...区分父子进程特有的内容
- 简单的网页请求图片下载
- Html 中的背景(background)
- iOS之旅--首尾式动画初学总结
- oracle_单向函数_数字化功能
- NYOJ 300 && hdu 2276 Kiki & Little Kiki 2 (矩阵高速功率)
- 【Linux】最常用的20条命令
- 《Linux内核设计的艺术》总结:设备环境初始化及激活进程0
- SQL SERVER常用系统存储过程
- iOS中URL问题
- Java之静态内部类(static class)
- 万众创业葬送了多少人的前程?
- 09.20 string类类型
- 算法导论第六章堆排序(一)
- 数组和指针内存分配示例代码
- 用于解析Json数据的HttpUtils工具类
- 自学安卓复习基础_之十(使用适配器BaseAdapter来实现listView的CRD)
- 【转】Nessus漏洞扫描教程之安装Nessus工具