首页 > 其他 > 详细

Spark 宽窄依赖和stage的划分

时间:2019-09-12 18:47:51      阅读:161      评论:0      收藏:0      [点我收藏+]

技术分享图片 

窄依赖

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中。

技术分享图片

 

Spark 宽窄依赖和stage的划分

原文:https://www.cnblogs.com/Alcesttt/p/11514375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!