Spark-RDD程式設計
阿新 • • 發佈:2022-03-07
參考:http://dblab.xmu.edu.cn/blog/1312-2/
總的來說,每一 個Spark Application 都是由一個driver program組成,這個driver program會執行使用者的 main 方法 ,且能在叢集上執行並行操作。Spark 提供了一個主要的資料抽象,叫彈性分散式資料集(RDD),RDD 是一個能跨叢集執行並行操作的資料集合,我們可以通過從 Hadoop file system 中讀取資料來建立一個 RDD,亦可以將 driver program 中一個 Scala 集合轉換而來。通常,我們可以讓 Spark 將一個 RDD 持久化到記憶體,以方便我們後面對這個資料進行重複的操作(注:將資料持久化到記憶體後,讀取速度會變得很快)。在一個分散式叢集中,當一個節點掛掉之後,RDD 會自動的進行恢復。
Spark 中的另一個抽象是 shared variables (注:常見的中文資料會將其翻譯成共享變數)。預設的,當 Spark 執行一個並行操作的時候,會將函式中使用到的變數複製到每一個 task 中,有些時候,一個變數需要在多個 tasks、或者是在 tasks 和 driver program 之間進行共享。Spark 支援兩種型別的共享變數:一是 broadcast variables (廣播變數),它將能一個變數快取到所有節點的記憶體中,第二個是 accumulators (累加器),他只能被用作加法的變數,比如計數和求和。
http://dblab.xmu.edu.cn/blog/1312-2/