拓冰建站拓冰建站
首页 / 资讯中心 / 正文

大数据毕设高口碑项目!基于 Hadoop+Spark 的城市空气质量分析可视化系统

作者计算机编程小央姐个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持 文末获取源码目录大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统功能介绍大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统技术介绍大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统背景意义大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统演示视频大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统演示图片大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统部分代码大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-结语大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统功能介绍本系统是一套面向城市空气质量监测场景的大数据分析与可视化平台数据来源于 OpenAQ 全球城市空气质量日度监测数据集涵盖墨西哥城、北京、首尔、波哥大、曼谷、利马等 8 个城市、72 个监测站、约 3.3 万条记录覆盖 PM2.5、PM10、NO2、SO2、O3、CO 六种主要污染物。系统后端采用 Hadoop 分布式存储与 Spark 分布式计算框架使用 Spark SQL 完成多维度的数据清洗、分组聚合与统计分析同时基于 K-Means、孤立森林、PCA 主成分分析和 GMM 高斯混合模型等无监督算法完成站点污染画像聚类、异常站点识别、污染物主导因子提取和站点软归属概率分析。后端以 Python 配合 Django 框架提供接口服务前端基于 Vue、ElementUI 和 Echarts 实现交互式图表展示支持按城市、站点类型、时间季节等维度联动筛选最终将分析结果以柱状图、折线图、热力图、雷达图等形式直观呈现整套流程从 HDFS 数据上传、Spark 离线计算到 MySQL 落库、前端渲染形成闭环。大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统技术介绍大数据框架HadoopSpark本次没用Hive支持定制开发语言PythonJava两个版本都支持后端框架DjangoSpring Boot(SpringSpringMVCMybatis)两个版本都支持前端VueElementUIEchartsHTMLCSSJavaScriptjQuery详细技术点Hadoop、HDFS、Spark、Spark SQL、Pandas、NumPy数据库MySQL大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统背景意义随着各地空气质量监测站越建越多每天积累下来的污染物浓度数据量也在不断变大这些数据如果只靠 Excel 去拉表格、做统计速度慢不说稍微复杂一点的交叉分析就很吃力。传统单机处理方式在面对几万条、十几列字段的监测记录时内存和计算能力都有点跟不上所以想借这次毕设的机会试着用 Hadoop 加 Spark 这套大数据框架来跑一跑真实的空气质量数据看看分布式计算在这种场景下到底好不好用。题目本身也不算新颖就是把课堂上学过的大数据技术落到一个具体的行业数据集上过程中会涉及数据上传 HDFS、Spark SQL 聚合、无监督算法建模最后再用 Echarts 把结果画出来整体走一遍从数据到图表的完整流程。这套系统做出来以后最直接的用处就是能把那几万条监测记录比较快地跑出城市排名、季节波动、站点聚类这些分析结果比手动处理省事不少对自己熟练掌握 Spark 和 Pandas 这套工具链也有帮助。从实际角度说把空气质量数据用可视化方式摆出来哪怕只是课程作业层面也能让看的人一眼看出哪个城市 PM2.5 偏高、哪个季节污染更严重算是把数据变成了能看懂的东西。另外 K-Means 和 PCA 这两块代码写下来也算是把机器学习里无监督那部分常用算法过了一遍对后面继续看同类文献或者做类似课题都算是打了点基础。当然这只是一个本科毕设水平的小系统离真正能上线给环保部门用还差得远但作为一次完整的大数据项目实践该踩的坑基本都踩到了。大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统演示视频演示视频大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统演示图片大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-系统部分代码frompyspark.sqlimportSparkSession,functionsasFfrompyspark.ml.featureimportVectorAssembler,StandardScalerfrompyspark.ml.clusteringimportKMeansfrompyspark.ml.featureimportPCA sparkSparkSession.builder \.appName(AirPollutionAnalysis)\.config(spark.sql.adaptive.enabled,true)\.getOrCreate()# 核心功能一各城市六种污染物均值对比 PM2.5 超标率分析 dfspark.read.csv(/user/hadoop/air_pollution/City_Types_OpenAQ_daily_complete_60k_balanced_labeled.csv,headerTrue,inferSchemaTrue)df_cleandf.na.fill(0)df_with_monthdf_clean.withColumn(year,F.year(F.to_date(Date))).withColumn(month,F.month(F.to_date(Date)))city_avgdf_with_month.groupBy(City).agg(F.round(F.avg(PM2.5),2).alias(pm25_avg),F.round(F.avg(PM10),2).alias(pm10_avg),F.round(F.avg(NO2),5).alias(no2_avg),F.round(F.avg(SO2),5).alias(so2_avg),F.round(F.avg(O3),5).alias(o3_avg),F.round(F.avg(CO),5).alias(co_avg))over_daysdf_with_month.filter(F.col(PM2.5)75).groupBy(City).agg(F.count(*).alias(over_days))total_daysdf_with_month.groupBy(City).agg(F.count(*).alias(total_days))over_rateover_days.join(total_days,City).withColumn(over_rate,F.round(F.col(over_days)/F.col(total_days)*100,2))resultcity_avg.join(over_rate,City).orderBy(F.col(pm25_avg).desc())resultresult.withColumn(city_cn,F.when(F.col(City)Beijing,北京).when(F.col(City)Seoul,首尔).when(F.col(City)Mexico City,墨西哥城).otherwise(F.col(City)))result.write.mode(overwrite).csv(/user/hadoop/air_pollution/output/city_pollution_avg_analysis.csv,headerTrue)# 核心功能二站点污染聚类画像分析K-Means station_profiledf_clean.groupBy(station_id).agg(F.avg(PM2.5).alias(pm25),F.avg(PM10).alias(pm10),F.avg(NO2).alias(no2),F.avg(SO2).alias(so2),F.avg(O3).alias(o3),F.avg(CO).alias(co))assemblerVectorAssembler(inputCols[pm25,pm10,no2,so2,o3,co],outputColfeatures_raw)feature_vecassembler.transform(station_profile)scalerStandardScaler(inputColfeatures_raw,outputColfeatures,withStdTrue,withMeanTrue)scaled_datascaler.fit(feature_vec).transform(feature_vec)kmeansKMeans(featuresColfeatures,k4,seed42)kmeans_modelkmeans.fit(scaled_data)clusteredkmeans_model.transform(scaled_data)cluster_with_descclustered.withColumn(cluster_desc,F.when(F.col(prediction)0,高PM2.5高PM10型).when(F.col(prediction)1,臭氧突出型).when(F.col(prediction)2,综合清洁型).otherwise(工业SO2型))cluster_with_desc.select(station_id,prediction,cluster_desc).write.mode(overwrite).csv(/user/hadoop/air_pollution/output/station_cluster_analysis.csv,headerTrue)# 核心功能三污染物综合得分降维分析PCA pca_srcdf_clean.select(PM2.5,PM10,NO2,SO2,O3,CO)pca_assemblerVectorAssembler(inputCols[PM2.5,PM10,NO2,SO2,O3,CO],outputColpca_raw)pca_vecpca_assembler.transform(pca_src)pca_scalerStandardScaler(inputColpca_raw,outputColpca_features,withStdTrue,withMeanTrue)pca_scaledpca_scaler.fit(pca_vec).transform(pca_vec)pcaPCA(k2,inputColpca_features,outputColpca_pc)pca_modelpca.fit(pca_scaled)pca_transformedpca_model.transform(pca_scaled)explainedpca_model.explainedVariance loadingspca_model.pc vars_col[PM2.5,PM10,NO2,SO2,O3,CO]loadings_rows[]fori,nameinenumerate(vars_col):loadings_rows.append((name,float(loadings.row(0)[i]),float(loadings.row(1)[i]),float(explained[i])ifilen(explained)else0.0))loadings_dfspark.createDataFrame(loadings_rows,schema[variable,pc1,pc2,var_explained])loadings_df.write.mode(overwrite).csv(/user/hadoop/air_pollution/output/pca_loadings_analysis.csv,headerTrue)大数据毕设高口碑项目基于 HadoopSpark 的城市空气质量分析可视化系统-结语如果大家有任何疑虑欢迎在下方位置详细交流。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门