RDD依赖与DAG

宽依赖 & 窄依赖

在spark中,rdd间的依赖关系分为两种,宽依赖和窄依赖
wide:
父RDD的一个分区对应子RDD的一个分区
该转换过程的算子叫做窄依赖算子,比如map,filter,union,flatMap

narrow:
父RDD的一个分区对应子RDD的多个分区
该转换过程的算子叫做宽依赖算子,比如groupByKey. reduceByKey aggravateByKey

在这里插入图片描述
源码

abstract class Dependency[T] extends Serializable {
  def rdd: RDD[T]
}

宽依赖 & 窄依赖在源码中的体现
在这里插入图片描述
为何要划分这个?
为了确定是否需要shuffle,进而可以划分stage.

lineage 血统

什么是血统?
RDD之间的依赖关系,这种关系链叫做血缘关系.该关系在DAG中维护.

这样当某一个分区数据丢失,

  • 先看是否有缓存
  • 在看是否有检查点
  • 从上一个RDD重新计算,不需要从头计算.提高效率

DAG

有方向,没有回流的图,
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值