1.map(func):數據集中的每個元素經過用戶自定義的函數轉換形成一個新的RDD,新的RDD叫MappedRDD
(例1)
(RDD依賴圖:紅色塊表示一個RDD區,黑色塊表示該分區集合,下同)
2.flatMap(func):與map類似,但每個元素輸入項都可以被映射到0個或多個的輸出項,最終將結果”扁平化“後輸出
(例2)
(RDD依賴圖)
3.mapPartitions(func):類似與map,map作用於每個分區的每個元素,但mapPartitions作用於每個分區工
func的類型:Iterator[T] => Iterator[U]
假設有N個元素,有M個分區,那麼map的函數的將被調用N次,而mapPartitions被調用M次,當在映射的過程中不斷的創建對象時就可以使用mapPartitions比map的效率要高很多,比如當向數據庫寫入數據時,如果使用map就需要為每個元素創建connection對象,但使用mapPartitions的話就需要為每個分區創建connetcion對象
(例3):輸出有女性的名字:
(RDD依賴圖)
相關推薦
'Spark內存管理之三:UnifiedMemoryManager分析'
"acquireExecutionMemory方法UnifiedMemoryManager中的accquireExecutionMemory方法:當前的任務嘗試從executor中獲取numBytes這麼大的內存該方法直接向ExecutionMemoryPool索要所需內存...
Spark
2019-08-09
'Linux環境Spark安裝配置及使用(三)'
"7. Spark RDD的高級算子(1) mapPartitionsWithIndex把每個partition中的分區號和對應的值拿出來def mapPartitionsWithIndex[U](f: (Int, Iterator[T]) ⇒ Iterator[U], p...
'Spark大數據處理框架入門-包括生態系統、運行流程以及部署方式'
"Spark 大數據處理框架簡介Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用並行框架。Spark,擁有Had...
推薦中...