SparkCore(12):RDD三種API
阿新 • • 發佈:2018-12-17
1.tranformation
(1)執行時間:由一個RDD產生一個新的RDD,不會觸發job的執行
(2)作用:這個操作是在driver過程中執行的,當有action的操作時,就會把對應的資訊傳送到excutor上面
(3)常見API
map(),flatMap(),filter(),groupByKey(),reduceBykey(),sortByKey(),join(),coalesce(),mapPartitions(),repartition()
2.action
(1)執行時間:觸發rdd的job執行提交操作,並將rdd對應的job提交到executor上執行
(2)作用:該型別的API呼叫的時候,會觸發job的執行,並將job的具體執行過程提交到executor上執行,最終的執行結果要不輸出到其它檔案系統或者返回給driver
(3)常見API
reduce(),collect(),count(),take(),saveAsTextFile(),foreach()
3.persistent
(1)功能:rdd將資料進行快取操作或者清除快取的rdd資料或者資料進行了checkpoint(只在streaming中使用)
(2)常見API
rdd.cache() 資料快取到記憶體中 rdd.persist(xxx) 資料快取到指定級別的儲存系統中(記憶體\記憶體+磁碟\磁碟) rdd.unpersist() 清除快取資料
(3)觀察
快取可以在DAG圖中看到小綠點,證明不是從最原始的資料來源拿的資料 也可以4040的Storage介面當中看到有快取的rdd資訊,可以看到快取級別