rdd(resilient distributed dataset)叫做分布式資料集,是spark中最基本的資料抽象,它代表乙個不可變、可分割槽、裡面的元素可平行計算的集合。rdd具有資料流模型的特點:自動容錯、位置感知性排程和可伸縮性。rdd允許使用者在執行多個查詢時顯式地將工作集快取在記憶體中,後續的查詢能夠重用工作集,這極大地提公升了查詢速度。
1)a list of partitions 一組分片(partition),即資料集的基本組成單位。對於rdd來說,每個分片都會被乙個計算任務處理,並決定平行計算的粒度。使用者可以在建立rdd時指定rdd的分片個數,如果沒有指定,那麼就會採用預設值。預設值就是程式所分配到的cpu core的數目。
2)a function for computing each split 乙個計算每個分割槽的函式。spark中rdd的計算是以分片為單位的,每個rdd都會實現compute函式以達到這個目的。compute函式會對迭代器進行復合,不需要儲存每次計算的結果。
3)a list of dependencies on other rdds rdd之間的依賴關係。rdd的每次轉換都會生成乙個新的rdd,所以rdd之間就會形成類似於流水線一樣的前後依賴關係。在部分分割槽資料丟失時,spark可以通過這個依賴關係重新計算丟失的分割槽資料,而不是對rdd的所有分割槽進行重新計算。
4)optionally,a partitioner for key-value rdds 乙個partitioner,即rdd的分片函式。當前spark中實現了兩種型別的分片函式,乙個是基於雜湊的hashpartitioner,另外乙個是基於範圍的rangepartitioner。只有對於key-value的rdd,才會有partitioner,非key-value的rdd的parititioner的值是none。partitioner函式不但決定了rdd本身的分片數量,也決定了parent rdd shuffle輸出時的分片數量。
5) optionally,a list of preferred locations to compute each split 乙個列表,儲存訪問每個partition的優先位置(preferred location)。對於乙個hdfs檔案來說,這個列表儲存的就是每個partition所在的塊的位置。按照「移動資料不如移動計算」的理念,spark在進行任務排程的時候,會盡可能地將計算任務分配到其所要處理資料塊的儲存位置。
RDD五大特性
1 a list of partitions 一系列的分片 比如說128m一片,類似於hadoop中的split 2 a function for computing each split 每個分片上都有乙個函式去迭代 執行 計算它 3 a list of dependencies on other...
spark的RDD五大特點
rdd的5大特點 1 有乙個分片列表,就是能被切分,和hadoop一樣,能夠切分的資料才能平行計算。一組分片 partition 即資料集的基本組成單位,對於rdd來說,每個分片都會被乙個計算任務處理,並決定平行計算的粒度。使用者可以在建立rdd時指定rdd的分片個數,如果沒有指定,那麼就會採用預設...
MySql五大引擎的區別以及優劣之分
五大引擎 一 myisam 在建立myisam的時候會出來三個預設的檔案 1.tb demo.frm,儲存表定義 2.tb demo.myd,儲存資料 3.tb demo.myi,儲存索引。因為myisam表有無法處理事務,所以它只適合在一下幾種情況下使用 1.選擇密集型的表。myisam儲存引擎在...