首页 理论教育 Spark依赖分类及其对应的转换操作

Spark依赖分类及其对应的转换操作

时间:2023-06-21 理论教育 版权反馈
【摘要】:Spark将依赖进一步分为两类,分别是窄依赖和Shuffle依赖。图6-2展示了几类常见的Shuffle依赖及其对应的转换操作。图6-2 常见Shuffle依赖及其对应的转换操作依赖关系是两个RDD之间的依赖,因此若一次转换操作中父RDD有多个,则可能会同时包含窄依赖和Shuffle依赖,如图6-3所示的join操作,RDD a和RDD c采用了相同的分区器,两个RDD之间是窄依赖,Rdd b的分区器与RDD c有所不同,因此它们之间是Shuffle依赖。

Spark依赖分类及其对应的转换操作

Spark将依赖进一步分为两类,分别是窄依赖(Narrow Dependency)和Shuffle依赖(Shuffle Dependency,也被称为Wide Dependency,即宽依赖)。

窄依赖中,父RDD中的一个分区最多只会被子RDD中的一个分区使用,换句话说,父RDD中,一个分区内的数据是不能被分割的,必须整个交付给子RDD中的一个分区。图6-1展示了几类常见的窄依赖及其对应的转换操作。

978-7-111-52928-6-Part03-11.jpg

图6-1 常见窄依赖及其对应的转换操作

Shuffle依赖中,父RDD中的分区可能会被多个子RDD分区使用。因为父RDD中一个分区内的数据会被分割,发送给子RDD的所有分区,因此Shuffle依赖也意味着父RDD与子RDD之间存在着Shuffle过程,Shuffle过程的细节本书会在第8章中讲述。图6-2展示了几类常见的Shuffle依赖及其对应的转换操作。(www.xing528.com)

978-7-111-52928-6-Part03-12.jpg

图6-2 常见Shuffle依赖及其对应的转换操作

依赖关系是两个RDD之间的依赖,因此若一次转换操作中父RDD有多个,则可能会同时包含窄依赖和Shuffle依赖,如图6-3所示的join操作,RDD a和RDD c采用了相同的分区器,两个RDD之间是窄依赖,Rdd b的分区器与RDD c有所不同,因此它们之间是Shuffle依赖。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈