1. 程式人生 > >第6章 Spark程式設計進階

第6章 Spark程式設計進階

6.1 簡介 共享變數 1)累加器(accumulator): 用來對資訊進行聚合 2)廣播變數(broadcast variable): 用來高效分發較大的物件

基於分割槽處理、外部程式介面呼叫、彙總統計

6.2 累加器 提供了將工作節點中的值聚合到驅動器程式中的簡單語法。常見用途是在除錯時對作業執行過程中的事件進行計數。 累加器用法:

  • 建立累加器,SparkContext.accumulator(initialValue),返回Accumulator[T]物件
  • Spark閉包裡的執行器使用累加器的+=方法
  • 呼叫累加器的value屬性來訪問累加器的值

6.2.1 累加器與容錯性 在行動操作中,對累加器的修改應用一次; 轉化操作中,不能保證。

6.2.2 自定義累加器 擴充套件AccumulatorParam

6.3 廣播變數 讓程式高效地向所有工作節點發送一個較大的只讀值,以供一個或多個Spark操作使用 使用廣播變數: 1)呼叫SparkContext.broadcast創建出一個Broadcast[T]物件 2)通過value訪問值 3)變數只會被髮到各個節點一次,應作為只讀值處理

6.4 基於分割槽進行操作 Spark提供基於分割槽的map和foreach,讓你的部分程式碼只對RDD的每個分割槽進行一次,這樣可以幫助降低這些操作的代價

6.5 與外部程式間的管道 可以將資料通過管道傳給用其他語言編寫的程式,比如R語言指令碼。

6.6 數值RDD的操作 數值RDD呼叫stats()時,返回StatsCounter物件。StatsCounter上有很多可用的方法。

6.7 總結