spark RDD 函數之map

Spark 技術 大數據之門 2017-05-29

1.map(func):數據集中的每個元素經過用戶自定義的函數轉換形成一個新的RDD,新的RDD叫MappedRDD

(例1)

spark RDD 函數之map

(RDD依賴圖:紅色塊表示一個RDD區,黑色塊表示該分區集合,下同)

spark RDD 函數之map

2.flatMap(func):與map類似,但每個元素輸入項都可以被映射到0個或多個的輸出項,最終將結果”扁平化“後輸出

(例2)

spark RDD 函數之map

(RDD依賴圖)

spark RDD 函數之map

3.mapPartitions(func):類似與map,map作用於每個分區的每個元素,但mapPartitions作用於每個分區工

func的類型:Iterator[T] => Iterator[U]

假設有N個元素,有M個分區,那麼map的函數的將被調用N次,而mapPartitions被調用M次,當在映射的過程中不斷的創建對象時就可以使用mapPartitions比map的效率要高很多,比如當向數據庫寫入數據時,如果使用map就需要為每個元素創建connection對象,但使用mapPartitions的話就需要為每個分區創建connetcion對象

(例3):輸出有女性的名字:

spark RDD 函數之map

(RDD依賴圖)

spark RDD 函數之map

相關推薦

推薦中...