目录
总纲
写在前面的话
首先这篇博客绝对原创。读者遇到编程中的任何问题可以留言,看到了就会回
需要的前瞻知识
这篇博客是假设读者都是已经安装好了Hadoop,Spark,以及对idea插件等,如果在安装这些大数据软件遇到了困难可以根据版本号在CSDN里搜对应的大数据软件安装
用到的软件版本
Hadoop2.7.7;Java1.8.0;sbt1.4.0;Spark2.4.0;Hive2.1.1;ZooKeeper3.5.10;Python3.7.9
数据集
也可点击下面的链接
链接:https://pan.baidu.com/s/13T8IHjAjvbsvQtQ01Ro__Q?pwd=494j
提取码:494j
代码原理(比较重要)
该部分数据分析使用res.csv,即污染物浓度的逐小时数据。其中使用到了Spark ML中计算皮尔逊相关系数的函数包,主要步骤如下:
(1)使用sql语句,从res.csv中选择SO2和NO2的逐小时浓度数据;
(2)保存其数据至csv文件,供后续可视化使用;
(3)使用describe函数,计算其数量、均值、标准差以及最值;
(4)将选择的数据映射为Double类型;
(5)使用Statistics.corr(SO2, NO2, "pearson")函数,计算其相关系数。
计算结果为:SO2浓度与NO2浓度的皮尔逊相关系数为0.41。
因为PM10浓度的变化与空气含水量密切相关,比如当相对湿度大于60%以上时, PM10颗粒会吸湿增大,所以该部分试图分析PM10浓度与空气湿度的关系。主要步骤参考上一部分:
(1)使用sql语句,从res.csv中选择PM10浓度和空气湿度的逐小时浓度数据;
(2)保存其数据至csv文件,供后续可视化使用;
(3)使用describe函数,计算其数量、均值、标准差以及最值;
(4)将选择的数据映射为Double类型;
(5)使用Statistics.corr(PM10, Air, "pearson")函数,计算其相关系数。
计算结果为:PM10浓度与空气湿度的皮尔逊相关系数为 -0.41。
因为云量及其云内液体的吸收对O3含量有一定影响,所以该部分试图对O3浓度与云量的关系进行分析,主要使用斯皮尔曼相关系数。主要步骤参考上一部分:
(1)使用sql语句,从res.csv中选择O3浓度和云量的逐小时浓度数据;
(2)保存其数据至csv文件,供后续可视化使用;
(3)使用describe函数,计算其数量、均值、标准差以及最值;
(4)将选择的数据映射为Double类型;
(5)使用Statistics.corr(O3, Cloud, "spearman")函数,计算其相关系数。
计算结果为:O3浓度与云量的斯皮尔曼相关系数为 0.04,关联性不高。
部分代码
对于代码我分成了几个部分,有部分代码和之前只有细微差别
Task4函数的代码(主要部分)
def T