千家信息网

怎么用SPARK对PM2.5数据进行分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这期内容当中小编将会给大家带来有关怎么用SPARK对PM2.5数据进行分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。准备SPARK环境今天,在各种公有云都可能申
千家信息网最后更新 2026年11月02日怎么用SPARK对PM2.5数据进行分析

这期内容当中小编将会给大家带来有关怎么用SPARK对PM2.5数据进行分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

准备SPARK环境

今天,在各种公有云都可能申请到SPARK的环境。但彻底免费,启动最容易的是在超能云(SuperVessel)上面的SPARK服务,完全免费。

  1. 首先登录超能云主页 http://www.ptopenlab.com . 如果你之前没有申请过帐号,可以直接申请。新申请的帐号,会收到来自 manager@ptopenlab.com 的邮件,点击里面的链接来激活帐号。

  2. 登录之后,选择主页上面的"大数据实验室(Big data service)"。

  3. 登录大数据服务,在登录见面上再次输入你注册的用户名和密码。就可以进入大数据服务页面。

  4. 点击创建,即可进入创建大数据集群的界面。目前,超能云上提供了MapReduce和SPARK两种环境。我们选择SPARK,选择最小的单节点即可,如下图所示。

  5. 点击"确认创建"后,大概过30秒钟,单节点的SPARK环境就构建成功。可以看到如下界面。

  6. 点击"Master控制台"按钮,就会出现一个登陆到编辑控制台的新页面,如下。默认密码是"passw0rd".

  7. 就可以进入SPARK集群master节点的命令行界面。到这一步,就完成SPARK环境的准备了。

PM2.5数据

为了方便同学们进行SPARK的学习,我们特地把过去5个月的PM2.5数据放到了超能云上面,供大家作为实验数据:)这些数据是从我们5个PM2.5监测传感器每天测量所得的第一手真实数据。它们测量的是北京上地中关村软件园地区的真实情况哦。

不要小看这五个PM2.5空气质量传感器,它们是IBM研究院的最新研究成果。先看看图吧,个子小,完全符合工业户外设计要求,自带3G数据回传,而且是太阳能供电。一句话,户外室内安装,一根线都不用拉。就这么酷!

先上个图,有图有真相。

这是一个是基于激光散射技术(米氏散射理论)的低成本传感器。相比于现行市场上的传感器技术,精度高多了,能从PM0.3一直测到PM10,关键是免维护。

言归正传,我们这次把数据都整理好,方便超能云的用户进行尝试数据分析。获取数据的方法如下:

cd /home/opuserwget http://softrepoNaNopenlab.com/bigdata/pm25_file.tar

使用tar命令解开tar包

tar -xf pm25_file.tar

在生成的目录pm25_file中有三个文件。其中,pm25.txt是数据文件,例如08-Nov-2014, 84是指2014年11月8日某一时刻的测量值为84.

SPARK的实现代码

1.以脚本运行

pm25_2.10-1.0.jar是已经编译好的实现程序。run.sh是运行脚本。如果想先感觉一下的同学,可以直接运行./run.sh。就可以得到如下结果:

gradeOne is 24.77876%gradeTwo is 25.663715%gradeThree is 20.353981%gradeFour is 12.38938%gradeFive is 15.004249%gradeSix is 1.7699115%

这个结果表示,在这5个月的数据中,达到国家规定的一级到六级空气质量的天数的百分比。其中,gradeSix是PM2.5测量值在250以上,gradeFive是150~250,如此类推。

2.计算PM2.5浓度均值的步骤及代码

感受过了结果,我们就来尝试一步一步编写自己的SPARK代码。先进入SPARK的编辑环境:

$ /opt/spark-1.0.2-bin-hadoop2/bin/spark-shellscala>

读取输入数据

scala> val datainput = sc.textFile("pm25.txt")

读取所有pm25的数据到一个list中。因为我们的数据是"日期,pm2.5值",所以中间使用","作为分隔符,以整形读取第二个值。

scala> val Valuelist = datainput.map(_.split(",")).map(x=>(x(1).trim().toInt))

计算5个月所有数据获得的PM2.5均值

scala> val AveragePm25=Valuelist.reduce(_+_)/Valuelist.count

打印输出结果

scala> println("AveragePm25 is "+AveragePm25+"ug/m3")

3.PM2.5浓度按天排序

首先,把每天(x(0)作为key)的PM2.5数值(x(1))求和(.reduceByKey(_+_))

scala> val datamap=datainput.map(_.split(",")).map(x=>(x(0),x(1).trim().toInt)).reduceByKey(_+_)

获取每天的记录个数

scala> val recordnumber=datainput.map(_.split(",")). map(x=>(x(0),1)).reduceByKey(_+_)

计算每一天的PM2.5平均值

scala> val dayAverage = datamap.join(recordnumber).map(x=>(x._1,x._2._1/x._2._2))

把所有天的当天平均值排序

scala> val sortData = dayAverage.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))

打印排序后,最高的10天的数值

scala> sortData.take(10).foreach(p=>println(p))

上述就是小编为大家分享的怎么用SPARK对PM2.5数据进行分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

数据 环境 分析 超能 传感器 结果 测量 登录 代码 界面 节点 帐号 排序 服务 运行 选择 主页 内容 同学 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 互联网科技公司起名 互联网科技工作委员会毛军 善班互联网科技有限公司 电子科技大学互联网 友谊互联网络科技 深圳天众互联网科技公司 天扬科技互联网广告 新华互联网科技校企合作 宁波青枫互联网科技有限公司 互联网教育科技公司vipkid 茂名市互联网科技产业园 互联网科技产业特征 洛阳昕诺飞互联网科技有限公司 厦门江牛科技互联网 宇信科技在杭州互联网排第几 互联网科技对化妆品行业 科技互联网专业工作会议发言稿 瑞安市蟠桃会互联网科技有限公司 高科技和互联网的现代国家 上海喔噻互联网科技有限公司 西安纸贵互联网科技有限公司 万达互联网科技 互联网科技寓意 港股科技和互联网 乌苏新华互联网科技做什么的 深圳无忧互联网科技 互联网科技资金流入 半导体是互联网高科技吗 兰石爱特工业互联网科技分公司
0