Spark程式設計指南之三 RDD基本概念

2021-09-02 15:35:46 字數 787 閱讀 2188

rdd(resilient distributed dataset),彈性分布式資料集,是spark的核心資料結構抽象。

它是彈性的,具有容錯能力,能夠重新計算失敗結點。

它是分布式的,資料分布在多個結點上。

它是乙個資料集,可以從外部載入資料,可以是文字檔案,json,資料庫等。

記憶體計算、延遲計算、容錯性、不可變性、邏輯分割槽、持久化策略、資料本地性。

hadoop的mapreduce框架不適合大量的迭代和互動操作。

spark的rdd抽象實現了將計算過程分為多個stage,並維護了有向無環圖dag,以支援延遲計算。彈性是指spark計算的快速恢復能力:由於dag的血統維護和節點容錯,當乙個節點出錯後,可以通過dag血統重新計算。並可以儲存中間結果,實現大量的迭代操作。

transformation操作兩端都是rdd,從乙個rdd生成另乙個rdd。比如map(),flatmap(),filter(),reducebykey()。action操作的返回值是乙個值。比如first(),take(),collect(),count()。由於延遲計算,直到出現action操作時,spark才會真正開始計算。

transformation操作分為窄依賴和寬依賴。

窄依賴在乙個分區內處理,可以在區內完成轉換,與其他worker不用互動。

寬依賴中,下乙個rdd的**是多個父rdd,也稱為shuffle transformation。

可以從操作後的rdd的**數量來區分,若乙個分區內的rdd**於多個rdd的分割槽,則為寬依賴。窄依賴和寬依賴的區別是有無shuffle,也是劃分stage的依據。

Spark程式設計模型 RDD

spark程式設計模型是彈性分布式資料集 resilient distributed dataset,rdd 是mapreduce模型的擴充套件和延伸 基於rdd機制實現了多類模型計算,如 1.迭代計算 2.互動式sql查詢 3.mapreduce rdd 4.流式資料處理。markdown 是一種...

spark學習 RDD程式設計

rdd建立 從從檔案系統中載入資料建立rdd 1.spark採用textfile 從檔案系統中載入資料建立rdd 可以使本地,分布式系統等 2.把檔案的url作為引數 可以是本地檔案系統的位址,分布式檔案系統hdfs的位址等等 從本地檔案中載入資料 sc為系統自動建立的sparkcontext,不用...

Spark學習 RDD程式設計基礎

spark上開發的應用程式都是由乙個driver programe構成,這個所謂的驅動程式在spark集群通過跑main函式來執行各種並行操作。集群上的所有節點進行平行計算需要共同訪問乙個分割槽元素的集合,這就是rdd rdd resilient distributed dataset 彈性分布式資...