简述Spark的宽窄依赖以及Stage是怎么划分的以及每个stage又是怎么划分task任务数

首先是Spark宽窄依赖的定义:

简单来理解的话,窄依赖就是父RDD的每个分区最多被一个子RDD所依赖,是一对一依赖,这种情况的操作例如union,flatMap这样的操作,不会产生shuffle。

宽依赖有别名叫做shuffle依赖,就是父RDD的每个分区会被多个子RDD所依赖,例如ReduceByKey,join这样的操作,会产生shuffle

所以划分Stage的边界就是宽依赖,而窄依赖会被流水线话的合并到同一个Stage中进行处理

在Stage中,决定Task数量有两方面的task数据:

一方面是shuffle中的shuffleMapStage的task数据会根据上游EDD的分区数进行划分,有多少个分区就有多少个Task数据。

另外的resultSta的task数据则会根据下游最终那个RDD的需要所分区数据进行分区,这里我们可以进行通过参数控制task的数据,那么就会有200个task任务数,默认是200个分区数据,可以根据实际情况进行优化调参数。

相关推荐
jambinliang9 分钟前
工业零件不良率、残次率的智能数据分析和数字化管理
大数据·python·sql·数据分析
weixin_3077791331 分钟前
PySpark实现获取S3上Parquet文件的数据结构,并自动在Snowflake里建表和生成对应的建表和导入数据的SQL
python·sql·spark·aws
kngines1 小时前
【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.1.2字段类型选择:keyword vs text、nested对象
大数据·elasticsearch·搜索引擎
顾北辰202 小时前
分布式中间件:Redis介绍
redis·分布式·中间件
月亮给我抄代码2 小时前
Flink性能指标详解MetricsAnalysis
大数据·flink
橘猫云计算机设计3 小时前
基于微信小程序的疫情互助平台(源码+lw+部署文档+讲解),源码可白嫖!
java·大数据·开发语言·spring boot·微信小程序·小程序·汽车
weixin_307779133 小时前
PySpark实现获取Cloud Storage上Parquet文件的数据结构,并自动在Google BigQuery里建表和生成对应的建表和导入数据的SQL
数据仓库·python·spark·云计算·googlecloud
尘世壹俗人3 小时前
spark写数据库用连接池找不到driver类
大数据·数据库·spark
WeiLai11123 小时前
面试基础---Spring Cloud微服务负载均衡架构
spring boot·分布式·后端·spring·spring cloud·面试·架构