Spark SQL实现人力资源管理数据分析(Python)

  1. 导入必要的库
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
  1. 创建SparkSession
conf = SparkConf().setAppName("HR Data Analysis")
sc = SparkContext(conf=conf)
spark = SparkSession(sc)
  1. 读取数据
# 读取员工信息数据
employees = spark.read.format("csv").option("header", "true").load("employees.csv")
# 读取部门信息数据
departments = spark.read.format("csv").option("header", "true").load("departments.csv")
# 读取薪资信息数据
salaries = spark.read.format("csv").option("header", "true").load("salaries.csv")
# 读取职位信息数据
titles = spark.read.format("csv").option("header", "true").load("titles.csv")
  1. 数据清洗和预处理
# 将员工信息数据进行清洗和预处理
employees = employees.dropDuplicates() # 去重
employees = employees.dropna() # 去除缺失值
# 将部门信息数据进行清洗和预处理
departments = departments.dropDuplicates() # 去重
departments = departments.dropna() # 去除缺失值
# 将薪资信息数据进行清洗和预处理
salaries = salaries.dropDuplicates() # 去重
salaries = salaries.dropna() # 去除缺失值
# 将职位信息数据进行清洗和预处理
titles = titles.dropDuplicates() # 去重
titles = titles.dropna() # 去除缺失值
  1. 数据合并
# 合并员工信息数据和薪资信息数据
employee_salaries = employees.join(salaries, on="emp_no")
# 合并员工信息数据和职位信息数据
employee_titles = employees.join(titles, on="emp_no")
# 合并员工信息数据、薪资信息数据和职位信息数据
employee_info = employee_salaries.join(employee_titles, on="emp_no")
# 合并员工信息数据、薪资信息数据、职位信息数据和部门信息数据
employee_department_info = employee_info.join(departments, on="dept_no")
  1. 数据聚合和分析
# 使用Spark SQL进行数据聚合和分析
employee_department_info.createOrReplaceTempView("employee_department_info")
result = spark.sql("""
    SELECT 
        dept_name, 
        COUNT(DISTINCT emp_no) AS total_employees, 
        AVG(salary) AS avg_salary
    FROM employee_department_info
    GROUP BY dept_name
    ORDER BY total_employees DESC
""")
# 显示结果
result.show()

我们使用了Spark SQL实现人力资源管理数据分析,具体实现过程如下:

  • 首先,读取需要进行数据分析的数据,如员工信息数据、部门信息数据、薪资信息数据和职位信息数据等。
  • 接着,对读取的数据进行清洗和预处理,如去重、去除缺失值等。
  • 然后,使用join操作将不同的数据表进行合并,得到包含多个表的数据集。
  • 最后,使用Spark SQL进行数据聚合和分析,得到需要的结果,如对部门的员工总数和平均工资进行统计分析。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据海中游泳的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值