Week 5, Big Data Analytics using Spark
Programing in Spark


Spark Core: Programming in Spark using RDD in pipelines
RDD 建立過後,會有兩種操作,Transformation 和 Action. 只有到了Action 階段才會驗證Transformation 操作是否正確,所以經常看到Action階段有很多報錯. 叫 lazy
下圖是一個具體的例子. 教程裡提到了cache功能,比如從資料庫query 資料放到RDD裡,這個過程比較耗時,為了防止每次都去執行query操作,我們就可以把第一次的結果()也就是RDD) cache起來,但是注意使用cache 很耗記憶體,可能會造成瓶頸..
Spark Core: Transformation
RDD本身不能被改變,只能通過transformtion操作轉成一個新的RDD
Map transformation
flatMap transfromation, 一對多
map 和 flatMap 是narrow tranformation. narrow transformation 只依賴於一個partition上的資料,並且 data suffering is not nessary.
Filter transformation
Coalesce transformation, 比如
上面談的都是narrow transformation, 都是本地處理資料不需要在網路上傳輸資料。
接下來談wide transformation
先看看reduceByKey 和 groupByKey 的區別.
groupByKey 需要跨節點的shuffle 操作,輸出是一個由 初始數字 1 組成的列表
reduceByKey 其實就是 groupByKey + reduce
narrow transformation 和 wide transformation 區別: 就看有沒有跨節點的 shuffle 操作, 也就是有沒有跨節點取資料做操作
Spark Core: Actions
第一個Action操作是很常見的collect, 它從worker node 收集最終的結果資料copy到driver node.
其中Reduce 最常用
Main models in Spark eco
Spark SQL
做什麼的?優勢?
Spark SQL 提供了API可以使query來的data轉成 DataFrame
具體怎麼做?
Spark SQL summary
Spark Streaming
Spark Streaming summary
Spark MLlib
Spark GraphX
Spark GraphX summary