Spark Exchange节点和Partitioning

​Exchange

在explain时,常看到Exchange节点,这个节点其实就是发生了数据交换


此图片来自于网络截取

BroadcastExchangeExec 主要是用来广播的

ShuffleExchangeExec 里面决定了数据分布的方式和采用哪种shuffle

在这里可以看到好几种不同的分区器

shufleManager创建不同的shuffle方式

Distribution与Partitioning

Distribution与Partitioning关联,定义了数据在集群各个节点上的分布情况

Distribution:

有6个子类

Partitioning和对应的子类

|----------------------------------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| Distribution子类 | 描述 | 算子示例 | 调用createPartitioning()方法 |
| UnspecifiedDistribution | 未指定分布,无需确定数据元组之间的位置关系 | | 抛出异常 |
| AllTuples | 只有一个分区,所有的数据元组存放在一起 | 例如GlobalLimit算子 | SinglePartition |
| BroadcastDistribution | 广播分布,数据会广播到所有节点上,构造参数mode为广播模式(BroadcastMode) | 例如Broadcast的Join操作中的requiredChildDistribution为[BroadcastDistribution(mode)] | BroadcastPartitioning |
| ClusteredDistribution | 构造参数clustering是Seq[Expression]类型,起到哈希函数的效果,经过clustering之后,相同的value数据会放到一个分区中 | 例如SortAggregateExec类型的Join操作中的requiredChildDistribution就是ClusteredDistribution(exprs) | HashPartitioning |
| HashClusteredDistribution 3.3 移出 | 构造参数expressions是Seq[Expression]类型,起到哈希函数的效果,经过expressions之后,相同的value数据会放到一个分区中 | 例如SortMerge类型的Join操作中的requiredChildDistribution就是[HashClusteredDistribution(leftKeys), HashClusteredDistribution(reghtKeys)] | HashPartitioning |
| OrderedDistribution | 构造参数ordering是Seq[SortOrder]类型,数据会根据ordering计算后的结果排序 | 例如在全局的Sort算子中,requiredChildDistribution就是[OrderedDistribution(sortOrder)] | RangePartitioning |
| StatefulOpClusteredDistribution 3.3 新增 | | | |

相关推荐
财迅通Ai17 小时前
6000万吨产能承压 卫星化学迎来战略窗口期
大数据·人工智能·物联网·卫星化学
武子康18 小时前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端
LJ979511118 小时前
媒体发布新武器:Infoseek融媒体平台使用指南
大数据·人工智能
科技小花18 小时前
AI重塑数据治理:2026年核心方案评估与场景适配
大数据·人工智能·云原生·ai原生
方向研究18 小时前
存储芯片生产
大数据
代码青铜18 小时前
如何用 Zion 实现 AI 图片分析与电商文案自动生成流程
大数据·人工智能
gaoshengdainzi19 小时前
GB/T23448-2019卫生洁具软管专用检测设备全套解决方案
大数据·卫生洁具软管检测设备·软管试验机
茶靡花开041520 小时前
什么是DMS经销商管理系统?经销商管理系统哪个好?
大数据·人工智能
Gofarlic_OMS21 小时前
HyperWorks用户仿真行为分析与许可证资源分点配置
java·大数据·运维·服务器·人工智能
fire-flyer21 小时前
ClickHouse系列(二):MergeTree 家族详解
大数据·数据库·clickhouse