當前位置:編程學習大全網 - 編程語言 - rdd描述正確的是

rdd描述正確的是

rdd的正確描述是彈性分布式數據集(RDD,ResilientDistributedDatasets)。

是分布式內存的壹個抽象概念,RDD提供了壹種高度受限的***享內存模型,即RDD是只讀的記錄分區的集合,只能通過在其他RDD執行確定的轉換操作(如map、join和groupby)而創建,然而這些限制使得實現容錯的開銷很低。

對開發者而言,RDD可以看作是Spark的壹個對象,它本身運行於內存中,如讀文件是壹個RDD,對文件計算是壹個RDD,結果集也是壹個RDD,不同的分片、數據之間的依賴、key-value類型的map數據都可以看做RDD。

解釋

彈性分布式數據集(RDD,ResilientDistributedDatasets),它具備像MapReduce等數據流模型的容錯特性,並且允許開發人員在大型集群上執行基於內存的計算。現有的數據流系統對兩種應用的處理並不高效:壹是叠代式算法,這在圖應用和機器學習領域很常見;二是交互式數據挖掘工具。

這兩種情況下,將數據保存在內存中能夠極大地提高性能。為了有效地實現容錯,RDD提供了壹種高度受限的***享內存,即RDD是只讀的,並且只能通過其他RDD上的批量操作來創建。盡管如此,RDD仍然足以表示很多類型的計算,包括MapReduce和專用的叠代編程模型(如Pregel)等。

RDD是只讀的、分區記錄的集合。RDD只能基於在穩定物理存儲中的數據集和其他已有的RDD上執行確定性操作來創建。這些確定性操作稱之為轉換,如map、filter、groupBy、join(轉換不是程開發人員在RDD上執行的操作)。

RDD不需要物化。RDD含有如何從其他RDD衍生(即計算)出本RDD的相關信息(即Lineage),據此可以從物理存儲的數據計算出相應的RDD分區。

RDD作為數據結構,本質上是壹個只讀的分區記錄集合。壹個RDD可以包含多個分區,每個分區就是壹個dataset片段。RDD可以相互依賴。如果RDD的每個分區最多只能被壹個Child RDD的壹個分區使用,則稱之為narrowdependency;若多個ChildRDD分區都可以依賴,則稱之為widedependency。

不同的操作依據其特性,可能會產生不同的依賴。例如map操作會產生narrowdependency,而join操作則產生widedependency。

  • 上一篇:vue.js路由是什麽
  • 下一篇:敬請高手論述破甲彈引信的發展歷史和發展方向?
  • copyright 2024編程學習大全網