Spark RDD
外觀
開發者 | 加州大學柏克萊分校AMPLab, Databricks |
---|---|
編程語言 | Scala |
操作系統 | 跨平台 |
網站 | spark |
Spark RDD(英語:Resilient Distributed Dataset,彈性分布式數據集)是一種數據存儲集合。只能由它支持的數據源或是由其他RDD經過一定的轉換(Transformation)來產生。在RDD上可以執行的操作有兩種轉換(Transformation)和行動(Action),每個 RDD 都記錄了自己是如何由持久化存儲中的源數據計算得出的,即其血統(Lineage)。
轉換
[編輯]- map(func):返回一個新的分布式數據集,由每個原元素經過func函數處理後的新元素組成
- filter(func):返回一個新的數據集,由經過func函數處理後返回值為true的原元素組成
- flatMap(func):類似於map,但是每一個輸入元素,會被映射為0個或多個輸出元素,因此,func函數的返回值是一個seq,而不是單一元素
行動
[編輯]- reduce(func):通過函數func聚集數據集中的所有元素,這個函數必須是關聯性的,確保可以被正確的並發執行
- collect():在driver的程序中,以數組的形式,返回數據集的所有元素,這通常會在使用filter或者其它操作後,返回一個足夠小的數據子集再使用
依賴
[編輯]- 寬依賴:父RDD中的分片可能被子 RDD 中的多個分片所依賴
- 窄依賴:父RDD的每個分片至多被子 RDD 中的一個分片所依賴