日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始,手把手教会你5分钟用SPARK对PM2.5数据进行分析(包括环境准备和SPARK代码)...

發布時間:2024/1/17 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始,手把手教会你5分钟用SPARK对PM2.5数据进行分析(包括环境准备和SPARK代码)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

要從零開始,五分鐘做完一個基于SPARK的PM2.5分析項目,你是不是會問

1. PM2.5的數據在哪里?

2. SPARK的環境哪兒有?

3. 程序怎么編?

不用急,跟著我做,5分鐘就可以從零開始完成所有的事情。

準備SPARK環境

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

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

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

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

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

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

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

  • 就可以進入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))


    轉載于:https://my.oschina.net/u/1431433/blog/412684

    總結

    以上是生活随笔為你收集整理的从零开始,手把手教会你5分钟用SPARK对PM2.5数据进行分析(包括环境准备和SPARK代码)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。