作者计算机毕业设计小途个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学习实战项目目录拉勾网招聘数据分析与可视化系统介绍拉勾网招聘数据分析与可视化系统演示视频拉勾网招聘数据分析与可视化系统演示图片拉勾网招聘数据分析与可视化系统代码展示拉勾网招聘数据分析与可视化系统文档展示拉勾网招聘数据分析与可视化系统介绍本系统名为《基于大数据的拉勾网招聘数据分析与可视化》主要围绕拉勾网招聘数据做离线分析与图表展示。大数据部分采用 HadoopHDFS 存放原始数据用 Spark、Spark SQL 完成数据清洗、字段统计和指标计算Pandas、NumPy 用来做辅助处理MySQL 保存分析结果。后端我按 Python 版本说明使用 Django 提供接口前端用 Vue、ElementUI、Echarts、HTML、CSS、JavaScript、jQuery 做页面和图表展示。功能覆盖系统首页、招聘数据分析大屏、用户管理、招聘数据管理、城市招聘情况分析、薪资水平分析、岗位需求分析、经验学历分析、企业分布分析、福利特征分析、岗位洞察分析、个人信息和修改密码。用户进入后能查看城市岗位数量、薪资区间、学历经验要求、企业分布和福利词分布等把表格里的招聘信息变成柱状图、饼图、折线图等。整个系统更偏大数据处理流程和可视化呈现适合作为计算机专业毕业设计来理解和实现。拉勾网招聘数据分析与可视化系统演示视频项目演示视频拉勾网招聘数据分析与可视化系统演示图片拉勾网招聘数据分析与可视化系统代码展示frompyspark.sqlimportSparkSession sparkSparkSession.builder.appName(LagouRecruitAnalysis).master(local[*]).getOrCreate()defbuild_recruit_dashboard():dfspark.read.option(header,true).option(inferSchema,true).csv(hdfs://localhost:9000/lagou/recruit.csv)df.createOrReplaceTempView(lagou_recruit)total_numspark.sql(select count(*) as total from lagou_recruit).collect()[0][total]city_topspark.sql(select city, count(*) as num from lagou_recruit group by city order by num desc limit 10)salary_topspark.sql(select city, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_recruit group by city order by avg_salary desc limit 10)edu_distspark.sql(select education, count(*) as num from lagou_recruit group by education order by num desc)exp_distspark.sql(select experience, count(*) as num from lagou_recruit group by experience order by num desc)company_topspark.sql(select company, count(*) as num from lagou_recruit group by company order by num desc limit 10)position_topspark.sql(select position, count(*) as num from lagou_recruit group by position order by num desc limit 10)welfare_distspark.sql(select welfare, count(*) as num from lagou_recruit group by welfare order by num desc limit 10)result{total:total_num,city_top:[row.asDict()forrowincity_top.collect()],salary_top:[row.asDict()forrowinsalary_top.collect()],edu_dist:[row.asDict()forrowinedu_dist.collect()],exp_dist:[row.asDict()forrowinexp_dist.collect()],company_top:[row.asDict()forrowincompany_top.collect()],position_top:[row.asDict()forrowinposition_top.collect()],welfare_dist:[row.asDict()forrowinwelfare_dist.collect()]}dashboard_dfspark.createDataFrame([(total_num,str(result))],[total_num,chart_json])dashboard_df.write.format(jdbc).option(url,jdbc:mysql://localhost:3306/lagou_analysis).option(dbtable,dashboard_result).option(user,root).option(password,123456).mode(overwrite).save()returnresultdefanalyze_salary_level():dfspark.read.option(header,true).option(inferSchema,true).csv(hdfs://localhost:9000/lagou/recruit.csv)df.createOrReplaceTempView(lagou_salary)salary_segspark.sql(select case when (salary_min salary_max) / 2 5 then 5k以下 when (salary_min salary_max) / 2 10 then 5k到10k when (salary_min salary_max) / 2 15 then 10k到15k when (salary_min salary_max) / 2 20 then 15k到20k else 20k以上 end as seg, count(*) as num from lagou_salary group by seg order by num desc)city_salaryspark.sql(select city, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_salary group by city order by avg_salary desc limit 15)exp_salaryspark.sql(select experience, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_salary group by experience order by avg_salary desc)edu_salaryspark.sql(select education, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_salary group by education order by avg_salary desc)company_salaryspark.sql(select company, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_salary group by company order by avg_salary desc limit 10)max_salaryspark.sql(select max((salary_min salary_max) / 2) as max_salary from lagou_salary).collect()[0][max_salary]min_salaryspark.sql(select min((salary_min salary_max) / 2) as min_salary from lagou_salary).collect()[0][min_salary]avg_salary_totalspark.sql(select round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_salary).collect()[0][avg_salary]result{salary_seg:[row.asDict()forrowinsalary_seg.collect()],city_salary:[row.asDict()forrowincity_salary.collect()],exp_salary:[row.asDict()forrowinexp_salary.collect()],edu_salary:[row.asDict()forrowinedu_salary.collect()],company_salary:[row.asDict()forrowincompany_salary.collect()],max_salary:max_salary,min_salary:min_salary,avg_salary_total:avg_salary_total}salary_dfspark.createDataFrame([(str(result),)],[salary_json])salary_df.write.format(jdbc).option(url,jdbc:mysql://localhost:3306/lagou_analysis).option(dbtable,salary_result).option(user,root).option(password,123456).mode(overwrite).save()returnresultdefanalyze_position_need():dfspark.read.option(header,true).option(inferSchema,true).csv(hdfs://localhost:9000/lagou/recruit.csv)df.createOrReplaceTempView(lagou_position)position_topspark.sql(select position, count(*) as num from lagou_position group by position order by num desc limit 20)city_positionspark.sql(select city, count(*) as num from lagou_position group by city order by num desc limit 15)exp_positionspark.sql(select experience, count(*) as num from lagou_position group by experience order by num desc)edu_positionspark.sql(select education, count(*) as num from lagou_position group by education order by num desc)company_positionspark.sql(select company, count(*) as num from lagou_position group by company order by num desc limit 15)salary_positionspark.sql(select position, round(avg((salary_min salary_max) / 2), 2) as avg_salary from lagou_position group by position order by avg_salary desc limit 20)position_countspark.sql(select count(distinct position) as position_count from lagou_position).collect()[0][position_count]city_countspark.sql(select count(distinct city) as city_count from lagou_position).collect()[0][city_count]result{position_top:[row.asDict()forrowinposition_top.collect()],city_position:[row.asDict()forrowincity_position.collect()],exp_position:[row.asDict()forrowinexp_position.collect()],edu_position:[row.asDict()forrowinedu_position.collect()],company_position:[row.asDict()forrowincompany_position.collect()],salary_position:[row.asDict()forrowinsalary_position.collect()],position_count:position_count,city_count:city_count}position_dfspark.createDataFrame([(str(result),)],[position_json])position_df.write.format(jdbc).option(url,jdbc:mysql://localhost:3306/lagou_analysis).option(dbtable,position_result).option(user,root).option(password,123456).mode(overwrite).save()returnresult拉勾网招聘数据分析与可视化系统文档展示作者计算机毕业设计小途个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学习实战项目