2023學(xué)年完整公開課版RDD簡(jiǎn)單實(shí)例_第1頁(yè)
2023學(xué)年完整公開課版RDD簡(jiǎn)單實(shí)例_第2頁(yè)
2023學(xué)年完整公開課版RDD簡(jiǎn)單實(shí)例_第3頁(yè)
2023學(xué)年完整公開課版RDD簡(jiǎn)單實(shí)例_第4頁(yè)
2023學(xué)年完整公開課版RDD簡(jiǎn)單實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

RDD簡(jiǎn)單實(shí)例目錄CONTENTS2RDD使用例子1RDD簡(jiǎn)介RDD簡(jiǎn)介PART0101RDD簡(jiǎn)介是Spark中最重要的核心概念,是Spark應(yīng)用中存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。RDD,彈性分布式數(shù)據(jù)集(ResilienntDistributedDatasets)RDD其實(shí)就是分布式的只讀元素集合。一個(gè)Spark應(yīng)用,本質(zhì)上就是對(duì)RDD進(jìn)行轉(zhuǎn)化(Transformation)和行動(dòng)(Action)操作,Spark會(huì)自動(dòng)將RDD中的數(shù)據(jù)分發(fā)到集群上,并將操作并行化執(zhí)行,計(jì)算得到最終的結(jié)果。RDD簡(jiǎn)介RDD理解的知識(shí)點(diǎn)框架圖:RDD使用例子PART0202RDD使用例子

本節(jié)介紹一個(gè)RDD使用例子,將數(shù)據(jù)文件讀入為RDD,并作相應(yīng)的轉(zhuǎn)化、行動(dòng)操作,在過(guò)程中展示RDD的知識(shí)點(diǎn)。##input.txt##INFOThisisamessagewithcontentINFOThisissomeothercontent(空行)INFOHerearemoremessagesWARNThisisawarning(空行)ERRORSomethingbadhappenedWARNMoredetailsonthebadthingINFObacktonormalmessages1、創(chuàng)建數(shù)據(jù)文件,如下:RDD使用例子//讀取輸入文件scala>valinput=sc.textFile("input.txt")//切分為單詞并且刪掉空行scala>valtokenized=input.map(line=>line.split("")).filter(words=>words.size>0)//提取出每行的第一個(gè)單詞(日志等級(jí))并進(jìn)行計(jì)數(shù)scala>valcounts=tokenized.map(words=>(words(0),1)).reduceByKey{(a,b)=>a+b}2、在spark-shell中編寫代碼如下,得到counts,表示每種提示類型的出現(xiàn)次數(shù)RDD使用例子如查看input的血緣關(guān)系,可以看到創(chuàng)建出了一個(gè)HadoopRDD

對(duì)象,然后對(duì)該RDD執(zhí)行映射操作,最終得到了返回的RDD3、使用toDebugString獲取RDD的血緣關(guān)系RDD使用例子可以看到血緣關(guān)系中記錄了從input經(jīng)過(guò)若干轉(zhuǎn)化操作得到counts,其中reduceByKey需要進(jìn)行數(shù)據(jù)混洗。4、同樣的,我們可以查看counts的血緣關(guān)系如下RDD使用例子這里同一縮進(jìn)等級(jí)的操作為一個(gè)Stage,同一個(gè)Stage里的操作可以流水線并行——前面的操作map、filter等不需要數(shù)據(jù)混洗,為窄依賴,劃分為一個(gè)StagereduceByKey需要數(shù)據(jù)混洗,為寬依賴,劃分為一個(gè)Stage5、在上圖中我們還可以看到,血緣關(guān)系中具有不同的縮進(jìn)等級(jí)RDD使用例子6、在監(jiān)控界面上查看任務(wù)的劃分與執(zhí)行情況,默認(rèn)地址為http://localhost:4040,打開如下,可以看到盡管我們做了數(shù)據(jù)的讀入、轉(zhuǎn)化操作,但由于惰性求值的特性,還沒(méi)有任務(wù)執(zhí)行。RDD使用例子7、使用collect操作,獲取counts的內(nèi)容,由于該操作是行動(dòng)操作,Spark會(huì)開始運(yùn)行任務(wù),在監(jiān)控界面查看如下,一個(gè)Job,兩個(gè)Stage,與上面的血緣關(guān)系一致。RDD使用例子8、點(diǎn)擊該任務(wù)可以查看任務(wù)詳情如下,可以看到具體的Stage劃分可視化。RDD使用例子9、使用cache將counts緩存,重新調(diào)用collect函數(shù),Spark會(huì)根據(jù)緩存自動(dòng)截?cái)嘌?,加快?jì)算,此時(shí)在監(jiān)控界面再次查看任務(wù)如下,可以看到只剩下一個(gè)Stage,前面的Stage由于緩存跳過(guò)計(jì)算。//緩存RDD

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論