ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

【大数据毕设精品】基于大数据的职业人群体检数据分析与可视化,附源码_数据可视化_数据分析_数据挖掘_Hadoop_spark_文档指导_毕设指导

【大数据毕设精品】基于大数据的职业人群体检数据分析与可视化,附源码_数据可视化_数据分析_数据挖掘_Hadoop_spark_文档指导_毕设指导 作者计算机毕业设计杰瑞个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学校实战项目计算机毕业设计选题推荐目录基于大数据的职业人群体检数据分析与可视化介绍基于大数据的职业人群体检数据分析与可视化演示视频基于大数据的职业人群体检数据分析与可视化演示图片基于大数据的职业人群体检数据分析与可视化代码展示基于大数据的职业人群体检数据分析与可视化文档展示基于大数据的职业人群体检数据分析与可视化介绍本系统名为《基于大数据的职业人群体检数据分析与可视化》面向职业人群这一特定群体的体检数据管理与分析需求采用Hadoop与Spark构建大数据处理链路通过HDFS完成体检数据的分布式存储借助Spark SQL与Pandas、NumPy完成数据清洗、指标统计与多维分析后端基于Django或Spring Boot提供数据接口前端采用Vue、ElementUI与Echarts实现可视化展示数据库使用MySQL存储用户信息与体检记录。系统功能涵盖我的信息、人群结构分析、生活习惯分析、血象指标分析、工龄影响分析、年度对比分析、健康画像分析、职业人体检信息管理以及用户管理能够从职业分布、年龄结构、生活习惯、血象指标、工龄差异和年度变化等角度对体检数据进行综合呈现帮助用户直观了解职业人群的健康状况与变化趋势同时也为计算机专业毕业设计提供了一个大数据分析与可视化相结合的实现方案。基于大数据的职业人群体检数据分析与可视化演示视频演示视频基于大数据的职业人群体检数据分析与可视化演示图片基于大数据的职业人群体检数据分析与可视化代码展示frompyspark.sqlimportSparkSessionfrompyspark.sql.functionsimportcol,count,avg,when,desc,sumas_sumfromdjango.httpimportJsonResponsefromdjango.views.decorators.csrfimportcsrf_exemptimportpandasaspdimportnumpyasnpimportjson sparkSparkSession.builder.appName(OccupationalHealthAnalysis).master(local[*]).config(spark.sql.shuffle.partitions,4).enableHiveSupport().getOrCreate()defanalyze_crowd_structure(request):dfspark.read.format(csv).option(header,true).option(inferSchema,true).load(hdfs://localhost:9000/health/checkup_data.csv)df.createOrReplaceTempView(checkup)age_structurespark.sql(SELECT CASE WHEN age 30 THEN 30岁以下 WHEN age 30 AND age 40 THEN 30-39岁 WHEN age 40 AND age 50 THEN 40-49岁 ELSE 50岁及以上 END AS age_group, COUNT(*) AS person_count FROM checkup GROUP BY age_group ORDER BY person_count DESC)gender_structurespark.sql(SELECT gender, COUNT(*) AS gender_count FROM checkup GROUP BY gender)job_structurespark.sql(SELECT job_type, COUNT(*) AS job_count FROM checkup GROUP BY job_type ORDER BY job_count DESC)age_resultage_structure.toPandas().to_dict(orientrecords)gender_resultgender_structure.toPandas().to_dict(orientrecords)job_resultjob_structure.toPandas().to_dict(orientrecords)total_countdf.count()result{total:total_count,age_structure:age_result,gender_structure:gender_result,job_structure:job_result}spark.catalog.dropTempView(checkup)returnJsonResponse({code:200,msg:人群结构分析完成,data:result})defanalyze_blood_indicator(request):dfspark.read.format(csv).option(header,true).option(inferSchema,true).load(hdfs://localhost:9000/health/checkup_data.csv)df.createOrReplaceTempView(blood_data)blood_statsspark.sql(SELECT job_type, AVG(wbc) AS avg_wbc, AVG(rbc) AS avg_rbc, AVG(hgb) AS avg_hgb, AVG(plt) AS avg_plt FROM blood_data GROUP BY job_type)abnormal_statsspark.sql(SELECT job_type, SUM(CASE WHEN wbc 10 OR wbc 4 THEN 1 ELSE 0 END) AS abnormal_wbc, SUM(CASE WHEN hgb 120 THEN 1 ELSE 0 END) AS abnormal_hgb, COUNT(*) AS total FROM blood_data GROUP BY job_type)blood_pdblood_stats.toPandas()abnormal_pdabnormal_stats.toPandas()mergedpd.merge(blood_pd,abnormal_pd,onjob_type,howinner)merged[abnormal_rate](merged[abnormal_wbc]merged[abnormal_hgb])/merged[total]*100merged[abnormal_rate]merged[abnormal_rate].round(2)indicator_resultmerged.to_dict(orientrecords)high_riskmerged[merged[abnormal_rate]15].sort_values(byabnormal_rate,ascendingFalse)risk_resulthigh_risk.to_dict(orientrecords)spark.catalog.dropTempView(blood_data)returnJsonResponse({code:200,msg:血象指标分析完成,data:{indicator:indicator_result,high_risk:risk_result}})defanalyze_work_years_impact(request):dfspark.read.format(csv).option(header,true).option(inferSchema,true).load(hdfs://localhost:9000/health/checkup_data.csv)df.createOrReplaceTempView(work_data)work_analysisspark.sql(SELECT CASE WHEN work_years 5 THEN 5年以下 WHEN work_years 5 AND work_years 10 THEN 5-10年 WHEN work_years 10 AND work_years 20 THEN 10-20年 ELSE 20年以上 END AS work_group, COUNT(*) AS person_count, AVG(bmi) AS avg_bmi, AVG(systolic) AS avg_systolic, AVG(diastolic) AS avg_diastolic, SUM(CASE WHEN bmi 28 THEN 1 ELSE 0 END) AS obese_count FROM work_data GROUP BY work_group ORDER BY work_group)work_pdwork_analysis.toPandas()work_pd[obese_rate](work_pd[obese_count]/work_pd[person_count]*100).round(2)work_pd[avg_bmi]work_pd[avg_bmi].round(2)work_pd[avg_systolic]work_pd[avg_systolic].round(2)work_pd[avg_diastolic]work_pd[avg_diastolic].round(2)trend_resultwork_pd.to_dict(orientrecords)max_obesework_pd.loc[work_pd[obese_rate].idxmax()].to_dict()spark.catalog.dropTempView(work_data)returnJsonResponse({code:200,msg:工龄影响分析完成,data:{trend:trend_result,max_obese_group:max_obese}})基于大数据的职业人群体检数据分析与可视化文档展示作者计算机毕业设计杰瑞个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学校实战项目计算机毕业设计选题推荐
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进