1. 程式人生 > >SparkCore(12):RDD三種API

SparkCore(12):RDD三種API

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資訊,可以看到快取級別