最最簡單的 WordCount

2021-09-20 08:24:08 字數 1205 閱讀 1929

sc.textfile("hdfs://....").flatmap(line =>line.split(" ")).map(w =>(w,1)).reducebykey(_+_).foreach(println)

不使用reducebykey

sc.textfile("hdfs://....").flatmap(l=>l.split(" ")).map(w=>(w,1)).groupbykey().map((p:(string,iterable[int]))=>(p._1,p._2.sum)).collect

步驟4:val reduce = wordcount.reducebykey(_+_)

步驟5:reduce.foreach(println) 觸發執行  

在執行foreach時,呼叫了runjob函式,實現了過載。 final rdd和作用於rdd上的function。 然後讀取finall rdd的分割槽數,通過allowlocal來表示是否在standalone模式下執行。

從spark-shell到sparkcontext的建立的呼叫路徑:

spark-shell -> spark-submit ->spark-class->sparksubmit.main ->sparkiloop -> createsparkcontext

spackcontext初始化過程中 傳入的入參是sparkconf

一、根據初始化生成sparkconf,再根據sparkconf來建立sparkenv.

二、建立taskscheduler,根據spark的執行模式選擇相應的schedulerbackend,同時啟動taskscheduler

taskscheduler.start()

createtaskscheduler最為關鍵,根據master環境變數來判斷spark當前的部署方式,從而生成相應的schedulerbackend的不同子類。taskscheduler.start的目的是啟動相應的schedulerbackend.

三、從上一步建立的taskscheduler例項為入參建立dagscheduler並啟動執行。

private[spark] var dagscheduler = new dagscheduler(taskscheduler)

dagscheduler.start()

四、啟動webui.

ui.start()

簡單驗證hadoop的wordcount

1 執行hadoop中的wordcount,得出一結果。2 對於某個指定單詞在ubuntu中的檔案所在目錄下執行 grep 指定單詞 所有統計檔案 wc 實際上就是linux unix平台的ls指令 a ls grep filename 查詢檔案名包含filename 的檔案 這其實就是乙個map,...

WordCount程式的簡單解釋

目前使用的hadoop是新架構,api與舊版本的也不一樣。新版的api是在org.apache.hadoop.mapreduce,舊版api是在org.apache.hadoop.mapred中。新版api不相容舊版api。主要改變 2 更廣泛的使用了context物件,並使用mapcontext進...

最最最最基礎的彈幕功能

lang en charset utf 8 name viewport content width device width,initial scale 1.0 documenttitle body,p,div,h1,h2,h3,h4,h5,h6,ul,ol,li canvas container ...