• <optgroup id="ccyim"><button id="ccyim"></button></optgroup>
  • 教育行業A股IPO第一股(股票代碼 003032)

    全國咨詢/投訴熱線:400-618-4000

    RDD有什么特征?

    更新時間:2020年12月22日18時05分 來源:傳智教育 瀏覽次數:

    好口碑IT培訓

    RDD( Resilient Distributed Dataset,彈性分布式數據集),是一個容錯的、并行的數據結構,可以讓用戶顯式地將數據存儲到磁盤和內存中,并且還能控制數據的分區。對于迭代式計算和交互式數據挖掘,RDD可以將中間計算的數據結果保存在內存中,若是后面需要中間結果參與計算時,則可以直接從內存中讀取,從而可以極大地提高計算速度。

    每個RDD都具有五大特征,具體如下。
    1.分區列表( a list of partitions)

    每個RDD被分為多個分區(Partitions),這些分區運行在集群中的不同節點,每個分區都會被一個計算任務處理,分區數決定了并行計算的數量,創建RDD時可以指定RDD分區的個數。如果不指定分區數量,當RDD從集合創建時,默認分區數量為該程序所分配到的資源的CPU核數(每個Core可以承載2~4個Partition),如果是從HDFS文件創建,默認為文件的Block數。

    2.每個分區都有一個計算函數( a function for computing each split)

    Spark的RDD的計算函數是以分片為基本單位的,每個RDD都會實現 compute函數,對具體的分片進行計算。

    3.依賴于其他RDD(a list of dependencies on other RDDs)

    RDD的每次轉換都會生成一個新的RDD,所以RDD之間就會形成類似于流水線一樣的前后依賴關系。在部分分區數據丟失時,Spark可以通過這個依賴關系重新計算丟失的分區數據,而不是對RDD的所有分區進行重新計算。

    4.(Key,Value)數據類型的RDD分區器(a Partitioner for Key-Value RDDS)

    當前Spark中實現了兩種類型的分區函數,一個是基于哈希的HashPartitioner,另外個是基于范圍的RangePartitioner。只有對于(Key,Value)的RDD,才會有Partitioner(分區),非(Key,Value)的RDD的Partitioner的值是None。Partitioner函數不但決定了RDD本身的分區數量,也決定了parent RDD Shuffle輸出時的分區數量。

    5.每個分區都有一個優先位置列表(a list of preferred locations to compute each split on)

    優先位置列表會存儲每個Partition的優先位置,對于一個HDFS文件來說,就是每個Partition塊的位置。按照“移動數據不如移動計算”的理念,Spark在進行任務調度的時候,會盡可能地將計算任務分配到其所要處理數據塊的存儲位置。


    猜你喜歡

    RDD轉換算子API過程演示

    不同系統如何加載數據創建RDD?

    RDD為什么要進行數據持久化?它的操作方法有哪些?

    傳智教育大數據培訓課程

    男女乱婬真视频,波多野结衣中文字幕在观线看,翘着光屁股趴在办公室,欧美做真爱免费A片