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 新增 | | | |

相关推荐
NewCarRen2 分钟前
基于自动驾驶仿真软件的交通事故档案建模与分析
大数据·汽车功能安全
JAVA学习通32 分钟前
Replication(下):事务,一致性与共识
大数据·分布式·算法
vivo互联网技术1 小时前
vivo HDFS EC大规模落地实践
大数据·hdfs·大数据计算与存储·erasure coding
api_180079054601 小时前
异步数据采集实践:用 Python/Node.js 构建高并发淘宝商品 API 调用引擎
大数据·开发语言·数据库·数据挖掘·node.js
科研服务器mike_leeso1 小时前
41 年 7 次转型!戴尔从 PC 到 AI 工厂的技术跃迁与组织重构
大数据·人工智能·机器学习
2501_913981782 小时前
2025年智能家居无线数传设备品牌方案精选
大数据·人工智能·智能家居
想ai抽2 小时前
吃透大数据算法-算法地图(备用)
大数据·数据库·spark
武子康3 小时前
大数据-126 - Flink一文搞懂有状态计算:State Backend 工作原理与性能差异详解 核心原理与作用
大数据·后端·flink
YangYang9YangYan3 小时前
金融分析师核心能力构建:从数据解读到战略洞察
大数据·信息可视化·金融·数据分析
BEOL贝尔科技4 小时前
不稳定的冰箱如何做权限管理?冰箱锁加入远程管理功能后生物保存工作发生了哪些变化?
大数据·人工智能