【赵渝强老师】Spark RDD的依赖关系和任务阶段

Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型:窄依赖和宽依赖。

  • 窄依赖:如果父RDD的每一个分区最多只被一个子RDD的分区使用,这样的依赖关系就是窄依赖;
  • 宽依赖:如果父RDD的每一个分区被多个子RDD的分区使用,这样的依赖关系就是宽依赖。

map、filter、union等操作都是典型的窄依赖操作,如下图所示。通过观察发现,每一个父RDD的分区都只被一个子RDD的分区使用。

注意:join操作可能会比较特殊,某些情况的join是窄依赖操作;但有些情况的join是宽依赖操作。需要具体问题具体分析。

视频讲解如下
【赵渝强老师】Spark RDD的窄依赖关系

宽依赖最典型的操作就是分组,如下图所示。这里父RDD的每一个分区都被多个子RDD的分区使用。

注意:这里的join操作就是一个宽依赖操作。

视频讲解如下
【赵渝强老师】Spark RDD的宽依赖关系

有了RDD之间不同的依赖关系,就可以划分任务执行的阶段,从而构建任务执行的DAG(Directed Acyclic Graph,有向无环图)图。对于窄依赖,分区的转换处理在同一个阶段中完成计算;对于宽依赖,由于有Shuffle的存在,只能在父 RDD处理完成后,子RDD才能开始计算,因此宽依赖是划分任务阶段的标准。下图中的任务一共被划分成了三个不同阶段来执行。

视频讲解如下
【赵渝强老师】如何划分Spark任务的执行阶段

通过借助Spark Web Console可以很方便的查看到任务被划分的阶段以及DAG图。下图是在Web Console查看WordCount任务的DAG图。

相关推荐
@insist1236 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师6 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记6 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
数智化精益手记局7 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Elastic 中国社区官方博客9 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog
jkyy20149 小时前
AI运动数字化:以技术重塑场景,健康有益赋能全域运动健康管理
大数据·人工智能·健康医疗
金融小师妹9 小时前
4月30日多因子共振节点:鲍威尔“收官效应”与权力结构重塑的预期重构
大数据·人工智能·重构·逻辑回归
2601_949925189 小时前
AI Agent如何重构跨境物流的决策?
大数据·人工智能·重构·ai agent·geo优化·物流科技
xiaoduo AI10 小时前
客服机器人问题解决率怎么统计?Agent系统自动判断是否解决,比人工回访准?
大数据·人工智能·机器人
小五兄弟11 小时前
YouTube 肖像检测扩展背后:短剧出海版权保护的技术实现与实战策略
大数据·人工智能