• 2023_Spark_实验十三:Spark RDD 求员工工资总额


    一、主题:Spark RDD 求员工工资总额及排名

    问题提出:近三年来,全球新冠疫情已经严重影响了现有经济情况,公司高层领导对公司运行情况进行深入了解,需要了解每个部门的人力成本,以至于更加合理的优化人力资源配置,最大程度的开源节流。根据项目实际需要,要求使用Spark RDD 求各部门员工工资总额,以及按照各部门的人力成本进行排序。

    二、需求:

    任务1、根据员工工资表(emp.csv),求出各部门员工总工资

    任务2、对各部门工资开销情况按部门进行排序(升序)

    任务3、对各部门工资开销情况,按照部门员工总工资进行排序(升序)

    三、问题解决:

    1、读取员工工资表(emp.csv)

    2、获取员工工资信息和部门信息

    3、对各部门工资进行汇总

    4、按部门进行排序(升序)

    测试数据

    一、回顾上一节课的内容:

    1、程序框架的搭建

    2、Spark程序的运行的必要条件

    二、需求分析

    1、分析工资表(哪一列是工资,哪一列是部门)

    2、根据工资表的数据,分析如何求出总工资,

    3、根据工资表的数据,分析如何按照部门编号排序

    三、基本思路

    1、读取文件

    2、提取相关字段(F,H)

    3、映射成键值对(部门,工资)

    4、汇聚

    5、排序

    6、结果输出

    四、需求实现

    1、创建单例对象

    2、入口函数

    3、创建CONF

    4、创建SC

    5、读取文件创建RDD

    6、切分(“,”)

    7、提取下标5,7字段

    8、映射成键值对(部门,工资)

    9、汇聚

    10、排序

    11、结果输出

    12、关闭资源

    五、可选择的算子:

    1、textFile

    2、split

    3、map

    4、reduceByKey

    5、sortByKey

    6、 collect

    7、foreach

    六、布置任务

    任务3、对各部门工资开销情况,按照部门员工总工资进行排序(升序)

    七、下节课预告

    1、如何将RDD写入MySQL数据库

    2、Spark SQL基础操作实验课

    参考代码:

    1. import org.apache.spark.{SparkConf, SparkContext}
    2. object EmpSalByDeptNo {
    3. def main(args: Array[String]): Unit = {
    4. //1、创建conf 和 sc
    5. val conf = new SparkConf().setAppName("EmpSalByDeptNo").setMaster("local[2]")
    6. val sc = new SparkContext(conf)
    7. // 2.业务逻辑(重点)
    8. sc.textFile("file:///D:\\temp\\emp.csv")
    9. .map(x => {
    10. val strings = x.split(",")
    11. val sal = strings(5).toInt
    12. val deptNo = strings(7).toInt
    13. (deptNo,sal)
    14. }).reduceByKey(_+_).sortByKey(ascending = true).collect().foreach(println)
    15. //3.关闭资源
    16. sc.stop()
    17. }
    18. }

  • 相关阅读:
    Java 中的线程池
    微服务:Sentinel篇
    基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(Python&Matlab实现)
    LeetCode刷题笔记【29】:动态规划专题-1(斐波那契数、爬楼梯、使用最小花费爬楼梯)
    如何基于原名称批量重命名(格式化)文件(夹)名
    Hyperinteger
    LeetCode952三部曲之一:解题思路和初级解法(137ms,超39%)
    远程连接服务器上搭建jupyter notebook
    二、【MyBatis】 MyBatis入门与简单使用
    【开学季】如何过好大学最后一年(求赞)
  • 原文地址:https://blog.csdn.net/pblh123/article/details/133852623