Spark2.4.8 求员工工资总额
Spark2.4.8 求员工工资总额
- 一、测试数据
- 二、任务要求
- 三、编码实现
- 四、实验要求
一、测试数据
- 员工信息表:下载地址
- 表字段说明:
二、任务要求
- 任务1:求每个部门的员工工资总额
- 任务2:求每个部门员工工资与奖金总额
- 任务3:将任务2中的结果按照
部门号
进行升序排 - 任务4:将任务2中的结果按照
工资总额
进行降序排
三、编码实现
创建maven工程
添加spark相关依赖,在pom.xml中添加如下依赖
<packaging>jar</packaging><properties><scala.version>2.11.8</scala.version><spark.version>2.4.8</spark.version><spark.artifact.version>2.12</spark.artifact.version><hadoop.version>2.7.3</hadoop.version> </properties><dependencies><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_${spark.artifact.version}</artifactId><version>${spark.version}</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version></dependency><!-- 使用scala2.11.8进行编译和打包 --><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency> </dependencies><build><!-- 指定scala源代码所在的目录 --><sourceDirectory>src/main/scala</sourceDirectory><testSourceDirectory>src/test/scala</testSourceDirectory><plugins><!--对src/main/java下的后缀名为.java的文件进行编译 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin><!-- scala的打包插件 --><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>4.5.4</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions><configuration><scalaVersion>${scala.version}</scalaVersion></configuration></plugin></plugins> </build>
【任务一】代码实现如下:
- 实现代码:
import org.apache.spark.{SparkConf, SparkContext}object CountSalary {def main(args: Array[String]): Unit = {val sparkConf = new SparkConf().setAppName(CountSalary.getClass.getName).setMaster("local[2]")val sc = new SparkContext(sparkConf)sc.textFile("d:/Tools/emp.csv").map(line => {val strings = line.split(",")val salary = strings(5).toIntval deptNo = strings(7).toInt(deptNo,salary)}).reduceByKey(_+_).collect().foreach(println)// 关闭scsc.stop()} }
- 结果:
- 实现代码:
【任务二】代码实现如下:
- 实现代码:
import org.apache.spark.{SparkConf, SparkContext}object CountBonusAndSalary {def main(args: Array[String]): Unit = {val sparkConf = new SparkConf().setAppName(CountBonusAndSalary.getClass.getName).setMaster("local[2]")val sc = new SparkContext(sparkConf)sc.textFile("d:/Tools/emp.csv").map(line => {val strings = line.split(",")val salary = strings(5).toIntval deptNo = strings(7).toIntvar bonus = 0if (!"".equals(strings(6)) && null != strings(6)){bonus = strings(6).toInt}(deptNo,salary+bonus)}).reduceByKey(_+_).collect().foreach(println)// 关闭scsc.stop()} }
- 结果如下:
- 实现代码:
【任务三】代码实现如下:
- 代码实现
import org.apache.spark.{SparkConf, SparkContext}object CountBonusAndSalaryByAsc {def main(args: Array[String]): Unit = {val sparkConf = new SparkConf().setAppName(CountBonusAndSalaryByAsc.getClass.getName).setMaster("local[2]")val sc = new SparkContext(sparkConf)sc.textFile("d:/Tools/emp.csv").map(line => {val strings = line.split(",")val salary = strings(5).toIntval deptNo = strings(7).toIntvar bonus = 0if (!"".equals(strings(6)) && null != strings(6)){bonus = strings(6).toInt}(deptNo,salary+bonus)}).reduceByKey(_+_).sortByKey(true).collect().foreach(println)// 关闭scsc.stop()} }
- 结果如下
- 代码实现
【任务四】代码实现如下:
- 代码实现:
import org.apache.spark.{SparkConf, SparkContext}object CountTotalByAsc {def main(args: Array[String]): Unit = {val sparkConf = new SparkConf().setAppName(CountTotalByAsc.getClass.getName).setMaster("local[2]")val sc = new SparkContext(sparkConf)sc.textFile("d:/Tools/emp.csv").map(line => {val strings = line.split(",")val salary = strings(5).toIntval deptNo = strings(7).toIntvar bonus = 0if (!"".equals(strings(6)) && null != strings(6)){bonus = strings(6).toInt}(deptNo,salary+bonus)}).reduceByKey(_+_).sortBy(tuple2 => {tuple2._2},false).collect().foreach(println)// 关闭scsc.stop()} }
- 结果如下:
- 代码实现:
四、实验要求
- 请使用不同的算子来完成如上的任务
Spark2.4.8 求员工工资总额相关推荐
- 「Python语法结构」求员工的实际工资
求员工的实际工资 功能要求 某公司员工的工资由基本工资.物价津贴及房租津贴组成.其中物价津贴占基本工资的40%,房租津贴占基本工资的20%.编写一个程序从键盘上输入员工的基本工资,并根据输入的基本工资 ...
- MapReducer——使用序列化求部门工资总额(4)
举例2:使用MapReduce序列化重写"求部门工资的总额的例子 数据处理过程如图: 代码实现: EmpMapper.java package com.serializable.salary ...
- 数据库-5 求员工连续工作天数
之前遇到的一个需求,求公司员工连续工作天数. 大概的数据格式: 员工工号 日期 当天打卡时长 12345 20171201 8 12345 2017120 ...
- 第七周项目30-分文件用数组求员工工资
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:text.cpp *作者:李德彪 *完成日期:2015年4月19日 *版本号: ...
- 第七周项目29-数组求员工工资
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:text.cpp *作者:李德彪 *完成日期:2015年4月19日 *版本号: ...
- c语言求员工的平均分数,用C语言编程平均分数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 当个反面典型,让大家见识下丑陋无比的程序好了,主要是想练练打字,HOHO.应该用二维数组且全部函数化的,rand的%后面或是101或是100,可能和编译器 ...
- JAVA求员工工资_员工工资问题(java)
import java.util.Scanner; public class Lq3 { public static void main(String args[]) { double a,b ...
- 数据结构与算法:求员工工资问题
问题是:若一个人第一个月的工资是1500,以后每一年的工资都在原基础上增加10%,那么第n年他的工资是多少?分别用递归和递推的方法编写算法. 这个问题没啥好说的了,直接代码见吧(此外,递推相当于迭代) ...
- mysql员工表部门表_部门表 department 部门编号 dept_id 部门名称 汇总表
有两张表 部门表 department 部门编号 dept_id 部门名称 dept_mement create table department( dept_id tinyint auto_in ...
最新文章
- java人工洗牌窗口程序_求解,用JAVA写洗牌与发牌模拟程序
- VS2005编译QT4.8.2
- linux内核支持硬盘,Intel 10nm桌面版还是来了:Linux内核已支持
- 线程池用过吗?ThreadPoolExecutor谈谈你的理解? —— 为什么用线程池?优势?|| 线程池如何使用?
- 文本分类入门(三)统计学习方法
- error C3872: '0x3000': this character is not allowed in an identifier 解决方法
- 被“轻视”的CV·AR的背后核心技术
- 栈溢出笔记1.3 准备Shellcode
- asp.net 获取访问的url
- java怎么录入4位会员号_【Java】录入会员号会员生日会员积分等会员信息,并判断录入的会员号是否合法,具体如下图...
- python的内存模型
- OO思想(只留做自己看理解)
- 推荐8个实用精美的在线网站,珍藏多年!
- Unity使用Aspose.Words创建表格和UI截图一起插入到Word中并保存到本地的一种解决方案
- xstream 对象 -》xml
- 程序员裸辞全职接单一个月的感触
- Pycharm新手使用教程(详解)
- [html5]离线存储
- Cell Metabolism:碳水化合物限制饮食对人类肝脂肪变性的快速代谢益处的综合理解
- qcc304x笔记之提示音配置(六)
热门文章
- java 编码 正弦计算器_计算器完整代码(java).doc
- 如果汉朝有RPA,那么李陵就能枭首10万匈奴,大汉版图扩至地中海
- SegmentFault 助力梅赛德斯-奔驰科技马拉松丨带你提前感受数字化时代的购车体验...
- QS公布2023年全球MBA商科硕士排名,清华大学MBA领跑中国MBA项目 | 美通社头条
- 用c语言设计八路抢答器的犯规程序,八路抢答器电子线路设计(附C语言程序) - 图文...
- CNN卷积神经网络的改进(15年最新paper)
- 8. amp;和amp;amp;的区别?
- IPFS技术的严谨性介绍
- Ubuntu修改grub进入Memtest86内存测试模式的退出解决方法
- you-get下载腾讯视频相关