第一步、資料的讀取(輸入)
將要處理的資料讀取封裝到乙個集合rdd中(模擬與scala中list列表)
val inputrdd = sc.textfile("…」)
第二步、資料處理(分析)
呼叫集合rdd中函式(高階函式)進行處理分析
rdd ->函式 ->另外乙個rdd :transformation函式
val outpurdd = inputrdd.#(#:基本就是list中函式)
比如:map\flatmap\filter\reducebykey
第三步、資料的輸出(輸出)
呼叫rdd中函式,返回的不是rdd型別
outputrdd.# :此型別函式稱為action函式
foreach\count\sum\first
3步放在一起,就是鏈式程式設計
sc.textfile(…).transformation().action
//第一步:資料的讀取(輸入)
val pageviewrdd: rdd[string] = spark.read.textfile("file:///d:/tmpdata/page_views.data").rdd
pageviewrdd.cache()
println(s"count=$")
//第二步:資料的處理(分析)
val timelengthcountrdd: rdd[(string, int)] = pageviewrdd.map(line =>)
//按照sessionid進行分組,得到每個會話 所有訪問時間
.groupbykey() //(string, iterable[long])
.mapelse if(timelength <20)else if(timelength <30)else}}
.reducebykey(_ + _)
//關閉資源
spark.stop()}}
spark工作流程及原理(一)
spark架構的組成圖如下 cluster manager 在standalone模式中即為master主節點,控制整個集群,監控worker。在yarn模式中為資源管理器 worker節點 從節點,負責控制計算節點,啟動executor或者driver。spark執行流程圖如下 2.sparkco...
Spark執行流程
四個步驟 1.構建dag 呼叫rdd上的運算元 2.dagscheduler將dag切分stage 切分的依據是shuffle 將stage中生成的task以taskset的形式給taskscheduler 3.taskscheduler排程task 根據資源情況將task排程到相應的executo...
Spark執行流程
參考博文 apache spark 是專為大規模資料處理而設計的快速通用的計算引擎。hadoop雖然已成為大資料技術的事實標準,但其本身還存在諸多缺陷,最主要的缺陷是其mapreduce計算模型延遲過高,無法勝任實時 快速計算的需求,因而只適用於離線批處理的應用場景。磁碟io開銷大。每次執行時都需要...