摘要:

  1.RDD的五大屬性

    1.1 partitions(分區(qū))

    1.2 partitioner(分區(qū)方法)

    1.3 dependencies(依賴關(guān)系)

    1.4 compute(獲取分區(qū)迭代列表)

    1.5 preferedLocations(優(yōu)先分配節(jié)點(diǎn)列表) 

  2.RDD實(shí)現(xiàn)類(lèi)舉例

    2.1 MapPartitionsRDD

    2.2 ShuffledRDD

    2.3 ReliableCheckpointRDD

  3.RDD可以嵌套嗎?

內(nèi)容:

1.RDD的五大屬性

1.1partitions(分區(qū))

  partitions : 分區(qū)屬性: 每個(gè)RDD包括多個(gè)分區(qū), 這既是RDD的數(shù)據(jù)單位, 也是計(jì)算粒度, 每個(gè)分區(qū)是由一個(gè)Task線程處理. 在RDD創(chuàng)建的時(shí)候可以指定分區(qū)的個(gè)數(shù), 如果沒(méi)有指定, 那么默認(rèn)分區(qū)的個(gè)數(shù)是CPU的核數(shù)(standalone).

  每一分區(qū)對(duì)應(yīng)一個(gè)內(nèi)存block, 由BlockManager分配.

 大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

 子類(lèi)可以通過(guò)調(diào)用下面的方法來(lái)獲取分區(qū)列表,當(dāng)處于檢查點(diǎn)時(shí),分區(qū)信息會(huì)被重寫(xiě)

 大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

Partition實(shí)現(xiàn):

 大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

partition 與 iterator 方法

  RDD 的 iterator(split: Partition, context: TaskContext): Iterator[T] 方法用來(lái)獲取 split 指定的 Partition 對(duì)應(yīng)的數(shù)據(jù)的迭代器,有了這個(gè)迭代器就能一條一條取出數(shù)據(jù)來(lái)按 compute chain 來(lái)執(zhí)行一個(gè)個(gè)transform 操作。iterator 的實(shí)現(xiàn)如下:

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

  其先判斷 RD