Spark - 宽依赖 & 窄依赖

  • 宽依赖:指一个父RDD的Partition会被多个子RDD的Partition所使用,例如,groudByKey,ReduceByKey,sortByKey等操作都会产生宽依赖。
  • 窄依赖:指每个父RDD的一个Partition最多被子RDD的一个Partition所使用,例如,Map,filter,union等操作都会产生窄依赖。

在这里插入图片描述
需要注意的是,如果两个RDD在进行join操作时,一个RDD的partition仅仅和另一个已知个数的Partition进行join,那么这种类型的join操作就是窄依赖。

那为什么要将RDD分为宽依赖和窄依赖呢?
1)窄依赖可以支持在同一个集群节点上以管道形式执行多条命令,处理速度快,相反,宽依赖需要所有的父分区都是可用的,可能还需要调用类似MapReduce之类的操作进行跨节点传递。
2)从失败恢复的角度考虑,窄依赖的失败恢复更有效,因为它只需要重新计算丢失的parent partition就可以了,而且可以并行地在不同节点进行重计算。而宽依赖牵涉到RDD各级的等多个parent partition.

综上所述,也就是说,如果父RDD的一个Partition被子RDD的一个Partition所使用就是窄依赖,否则就是宽依赖。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值