目录
总纲
写在前面的话
首先这篇博客绝对原创。读者遇到编程中的任何问题可以留言,看到了就会回复
需要的前瞻知识
这篇博客是假设读者都是已经安装好了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
代码原理
该部分数据分析主要针对PM2.5浓度数据,其中浓度限值区间如表3.1所示,但此处没有严格要求限制为每日数据,而是只使用其区间信息。由于在第六区间及之后,PM2.5浓度数据条目为0,所以仅计算在前五个区间的分布,分析主要包括:
(1)读入res.csv,创建临时视图,从临时视图中选取字段PM2.5监测浓度(μg/m3)
;
(2)使用count函数计算各个区间的分布数量;
(3)存入新的dataframe,表头为(区间等级,数量)。
部分代码
对于代码我分成了几个部分,有部分代码和之前只有细微差别
Task2函数的代码(主要部分)
def Task2(df: DataFrame): Unit = {
df.createOrReplaceTempView("PM25")
val PM25_total = spark.sql("select `PM2.5监测浓度(μg/m³)` from PM25 " + "where `PM2.5监测浓度(μg/m³)` >= 0" ).count()
val PM25_1 = spark.sql("select `PM2.5监测浓度(μg/m³)` from PM25 " + "where `PM2.5监测浓度(μg/m³)` >= 0 and `PM2.5监测浓度(μg/m³)` <= 35" ).count()
// println(PM25_total)
// println(PM25_1)
val PM25_2 =