中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用SPARK對PM2.5數據進行分析

發布時間:2021-12-16 22:00:39 來源:億速云 閱讀:137 作者:柒染 欄目:云計算

這期內容當中小編將會給大家帶來有關怎么用SPARK對PM2.5數據進行分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

準備SPARK環境

今天,在各種公有云都可能申請到SPARK的環境。但徹底免費,啟動最容易的是在超能云(SuperVessel)上面的SPARK服務,完全免費。

  1. 首先登錄超能云主頁 http://www.ptopenlab.com . 如果你之前沒有申請過帳號,可以直接申請。新申請的帳號,會收到來自 manager@ptopenlab.com 的郵件,點擊里面的鏈接來激活帳號。

  2. 登錄之后,選擇主頁上面的"大數據實驗室(Big data service)"。

    怎么用SPARK對PM2.5數據進行分析

  3. 登錄大數據服務,在登錄見面上再次輸入你注冊的用戶名和密碼。就可以進入大數據服務頁面。

    怎么用SPARK對PM2.5數據進行分析

  4. 點擊創建,即可進入創建大數據集群的界面。目前,超能云上提供了MapReduce和SPARK兩種環境。我們選擇SPARK,選擇最小的單節點即可,如下圖所示。

    怎么用SPARK對PM2.5數據進行分析

  5. 點擊“確認創建”后,大概過30秒鐘,單節點的SPARK環境就構建成功。可以看到如下界面。

    怎么用SPARK對PM2.5數據進行分析

  6. 點擊“Master控制臺”按鈕,就會出現一個登陸到編輯控制臺的新頁面,如下。默認密碼是“passw0rd”.

    怎么用SPARK對PM2.5數據進行分析

  7. 就可以進入SPARK集群master節點的命令行界面。到這一步,就完成SPARK環境的準備了。

PM2.5數據

為了方便同學們進行SPARK的學習,我們特地把過去5個月的PM2.5數據放到了超能云上面,供大家作為實驗數據:)這些數據是從我們5個PM2.5監測傳感器每天測量所得的第一手真實數據。它們測量的是北京上地中關村軟件園地區的真實情況哦。

不要小看這五個PM2.5空氣質量傳感器,它們是IBM研究院的最新研究成果。先看看圖吧,個子小,完全符合工業戶外設計要求,自帶3G數據回傳,而且是太陽能供電。一句話,戶外室內安裝,一根線都不用拉。就這么酷!

先上個圖,有圖有真相。

這是一個是基于激光散射技術(米氏散射理論)的低成本傳感器。相比于現行市場上的傳感器技術,精度高多了,能從PM0.3一直測到PM10,關鍵是免維護。

言歸正傳,我們這次把數據都整理好,方便超能云的用戶進行嘗試數據分析。獲取數據的方法如下:

cd /home/opuser
wget 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-shell
scala>

讀取輸入數據

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數據進行分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双江| 台州市| 宝清县| 明溪县| 绥棱县| 镇安县| 神农架林区| 贡觉县| 淮阳县| 陇西县| 安陆市| 谢通门县| 浦城县| 河池市| 崇文区| 许昌市| 易门县| 名山县| 元氏县| 宜阳县| 青河县| 梓潼县| 江安县| 杭锦旗| 民勤县| 大荔县| 威海市| 祁门县| 涞源县| 周口市| 桐城市| 云阳县| 东丽区| 富顺县| 巴里| 沾化县| 高阳县| 卓尼县| 吉林省| 拜泉县| 十堰市|