1. 程式人生 > >spark學習記錄(二、RDD)

spark學習記錄(二、RDD)

一、概念

RDD(Resilient Distributed Dataset)叫做彈性分散式資料集是Spark中最基本的資料抽象,它代表一個不可變、可分割槽、裡面的元素可平行計算的集合。RDD具有資料流模型的特點:自動容錯、位置感知性排程和可伸縮性。RDD允許使用者在執行多個查詢時顯式地將工作集快取在記憶體中,後續的查詢能夠重用工作集,這極大地提升了查詢速度。

RDD的五大特性:

  1. RDD是由一系列的partition組成
  2. 運算元(函式)作用在partition上
  3. RDD之間是有依賴關係,某一個RDD丟失時,可以基於依賴關係重新生成
  4. 分割槽器是基於K,V格式的RDD
  5. partition對外提供一系列最佳的計算位置,利於資料處理的本地化

補充:

  1. 如果RDD中的每個元素是一個個二元組,那麼這個RDD就是K,V格式 
  2. sc.textFile():Spark沒有直接讀取hdfs檔案的方法,textFile()的底層呼叫的是MR讀取HDFS的方法,首先會切分,每一塊預設大小為128m,就是一個block大小,每一塊對應一個partition
  3. 一個partition只能由一個task處理
  4. partition的個數可根據資料量多少而改變,即可分割,合併。啟動程序需要時間,所以資料量大時將資料分成多程序處理,但資料量小時,合併partition,減少分割槽
  5. partition分佈在多個節點上處理
  6. RDD中是不存資料的,partition中也不存資料