Spark中RDD資料結構的理解

2021-10-14 16:31:44 字數 1085 閱讀 5496

spark在國內的大量普及,越來越多人學習spark技術,作為spark core中最重要的資料結構rdd,是學習spark重點之一

rdd(resilient distributed datasets,彈性分布式資料集),是spark最為核心的概念,自然也是理解apache spark 工作原理的最佳入口之一。

分布式資料集:顧名思義,可以把資料分配到不同的節點上,但是在spark中,分布式資料集則是封裝了計算邏輯的概念

其特點如下:

➢ 彈性

⚫ 儲存的彈性:記憶體與磁碟的自動切換;

⚫ 容錯的彈性:資料丟失可以自動恢復;

⚫ 計算的彈性:計算出錯重試機制;

⚫ 分片的彈性:可根據需要重新分片。

➢ 分布式:資料儲存在大資料集群不同節點上

➢ 資料集:rdd 封裝了計算邏輯,並不儲存資料

➢ 資料抽象:rdd 是乙個抽象類,需要子類具體實現

➢ 不可變:rdd 封裝了計算邏輯,是不可以改變的,想要改變,只能產生新的 rdd,在

新的 rdd 裡面封裝計算邏輯

➢ 可分割槽、平行計算

用以下**來模擬rdd,輔助理解rdd在spark執行過程中是如何在driver 和 excetor 中傳輸

使用乙個 driver 和兩個excetor 類來模擬

任務類

class task extends serializable 

val logic : (int)=>int = _ * 2

}

子任務類

class subtask extends serializable 

}

excetor1

object executor 

}

excetor2

object executor2 

}

driver

object driver 

}

其中task類就類似餘rdd模型,當然只是粗略的,其中還有很多細節

對spark中RDD的理解

update at 2016.1.25 rdd作者的 鏈結 的理解 spark要解決的問題 1 有些資料要多次讀寫,磁碟速度很慢 2 沒有互動的介面,不能看到中間結果 適用的應用 1 機器學習 多個迭代次運算,逼近 優化問題 是不是三維重建中優化也可以用到這個 2 計算結果還要用的 pagerank...

spark中建立RDD的方式

spark中建立rdd的幾種方式 1 使用程式中的集合建立rdd 一般用於測試 2 使用本地檔案系統建立rdd 一般用於資料量大的檔案的測試 3 基於hdfs建立rdd 生產環境最常用的rdd建立方式 4 使用s3建立rdd 5 基於資料流建立rdd packagecom.dt.spark impo...

spark 中RDD的持久化原理

rdd持久化是可以手動選擇不同的策略的。比如可以將rdd持久化在記憶體中 持久化到磁碟上 使用序列化的方式持久化,多持久化的資料進行多路復用。只要在呼叫persist 時傳入對應的storagelevel即可。spark提供的多種持久化級別,主要是為了在cpu和記憶體消耗之間進行取捨。下面是一些通用...