Spark基础入门(二)--------DAG与RDD依赖

本文详细介绍了Spark中的DAG概念,包括RDD的生成与转换操作。重点讲解了RDD的两种依赖关系——窄依赖和宽依赖,以及它们在计算效率和故障恢复中的作用。此外,还阐述了如何根据依赖关系划分stage,并通过实例验证了Spark的stage划分原则,特别是shuffle操作如何导致stage的划分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 DAG定义

DAG每个节点代表啥?代表的一个RDD


1) 一个RDD生成两个RDD

RDD2 = RDD1.filter(xxxxx)

RDD3 = RDD1.filter(yyyy)

是从RDD1RDD2RDD3这样的过程

2) Union是两个RDD合并成一个的过程   

则是RDD2 RDD3变成RDD4的过程

3) filter/map/reduceByKey 应该都是一条直线

是从RDD4RDD5这样的过程

 

上述都是transformation

 

RDD5.collect();  //action

RDD5.foreach();  //action

这种则会生成两个job,会顺序提交前一个job执行结束之后才会提交下一个job(假设上述代码都在一个线程中)

可以和上一章中Persist中的job提交对照看

(二)、RDD依赖关系

RDD依赖关系,也就是有依赖的RDD之间的关系,比如RDD1------->RDD2RDD1生成RDD2),RDD2依赖于RDD1。这里的生成也就是RDDtransformation操作

 

窄依赖(也叫narrow依赖)

从父RDD角度看:一个父RDD只被一个子RDD分区使用。父RDD的每个分区最多只能被一个Child RDD的一个分区使用

从子RDD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值