Spark tutorial
- 20. Cluster
基本架構
分散式計算簡介
Worker Node
Worker Node
Worker Node
Worker Node
Data
Data
Data
ExecutorTaskTask
ExecutorTaskTask
ExecutorTaskTask
Client
Cluster
Manager
1. ⼯工作節點執⾏行行指定
任務
2. 此階段可能發⽣生節
點間的資料交換
Scheduling
Logistic
Regressioon
20
Cache
Data
Cache
Data
Cache
Data
- 21. Cluster
基本架構
分散式計算簡介
Worker Node
Worker Node
Worker Node
Worker Node
ExecutorTaskTask
ExecutorTaskTask
ExecutorTaskTask
Client
Cluster
Manager
Data
Data
Data
ExecutorTask
Reduce
1. 結合各⼯工作節點的
計算結果
Logistic
Regressioon
21
Cache
Data
Cache
Data
Cache
Data
- 22. Cluster
基本架構
分散式計算簡介
Worker Node
Worker Node
Worker Node
Worker Node
ExecutorTaskTask
ExecutorTaskTask
ExecutorTaskTask
Client
Cluster
Manager
Data
Data
Data
ExecutorTask
1. 將最終計算結果回
傳給使⽤用者
2. 根據需求,判斷是
否進⾏行行下次迭代
Logistic
Regressioon
22
Cache
Data
Cache
Data
Cache
Data
- 23. 基本架構
RDD 物件:Resilient Distributed Dataset
23
⽤用⼾戶端
RDD 物件
1. Create
2. Tranformation
3. Action
4. Cache
Work Node
Cache
Data
Work Node
Cache
Data
Work Node
Cache
Data Data
Data
Data
- 27. 基本架構
RDD 物件:Resilient Distributed Dataset
操作⽅方法:
1. 初始化(Create):可由外部資料(HDFS)或⽤用⼾戶端載入
2. 轉換(Transformation): 計算後產⽣生新的 RDD
3. 任務執⾏行行(Action):執⾏行行所有計算並回傳結果
4. 暫存(Cache):暫存 RDD 對應的資料,可設定暫存層級
27
必須使⽤用 Action ⽅方法才會真正執⾏行行 Cache
- 42. 條件式查詢
邏輯控制
• and:&
• or:|
• 等於:==
• 不等於:!=
例例⼦子:
1. (條件1 | 條件2):參參考程式
2. (條件1 | 條件2) & 條件3
((col1 == value1) | (col2 == value2)) & (col3 == value3)
42
- 56. 各種統計值
顯⽰示前 20 的訂單總額度
1. Join 資料表 order_details_df 與 products_df 取得:訂購數量量(quantity)、折扣
(discount)、產品原價(unitPrice)
2. 實際價格:unitPrice * (1-discount) = realPrice
3. 訂單中單⼀一產品總價:實際價格(realPrice) * 訂購數量量(quantity)
4. 使⽤用 groupBy(‘orderID’) 與 dataframe.agg(*expr) 與 orderBy
5. 參參考程式
56