Spark 宽窄依赖和stage的划分

 

窄依赖

RDD和子RDD partition之间的关系是一对一的,或者父RDD一个partition只对应一个子RDD的partition情况下的父RDD和子RDD partition关系是多对一的。

不会有shuffle的产生父RDD的一个分区去到RDD的一个分区。  

多对一或者一对一

可以理解为独生子女

宽依赖

RDD与子RDD partition之间的关系是一对多。

会有shuffle的产生,父RDD的一个分区的数据去到子RDD的不同分区里面。  

一对多

可以理解为超生

 

常见的宽窄依赖

窄依赖:filter map flatmap mapPartitions

宽依赖:reduceByKey grupByKey combineByKey,sortByKey, join(no copartition)

 

Stage

Spark任务会根据RDD之间的依赖关系,形成一个DAG有向无环图,DAG会提交给DAGSchedulerDAGScheduler会把DAG划分相互依赖的多个stage

划分stage的整体思路

从后往前推,遇到宽依赖就断开,划分为一个stage;遇到窄依赖就将这个RDD加入该stage中。

 

转载于:https://www.cnblogs.com/Alcesttt/p/11514375.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值