Spark RDD(英語:Resilient Distributed Dataset,彈性分散式數據集)是一種數據儲存集合。只能由它支援的數據源或是由其他RDD經過一定的轉換(Transformation)來產生。在RDD上可以執行的操作有兩種轉換(Transformation)和行動(Action),每個 RDD 都記錄了自己是如何由持久化儲存中的源數據計算得出的,即其血統(Lineage)。

RDD [1]
開發者加州大學柏克萊分校AMPLab, Databricks
程式語言Scala
作業系統跨平台
網站spark.apache.org

轉換

  • map(func):返回一個新的分散式數據集,由每個原元素經過func函數處理後的新元素組成
  • filter(func):返回一個新的數據集,由經過func函數處理後返回值為true的原元素組成
  • flatMap(func):類似於map,但是每一個輸入元素,會被對映為0個或多個輸出元素,因此,func函數的返回值是一個seq,而不是單一元素

行動

  • reduce(func):通過函數func聚集數據集中的所有元素,這個函數必須是關聯性的,確保可以被正確的並行執行
  • collect():在driver的程式中,以陣列的形式,返回數據集的所有元素,這通常會在使用filter或者其它操作後,返回一個足夠小的數據子集再使用

依賴

  • 寬依賴:父RDD中的分片可能被子 RDD 中的多個分片所依賴
  • 窄依賴:父RDD的每個分片至多被子 RDD 中的一個分片所依賴

參考文獻

  1. ^ [1]