记一次Spark cache table导致的数据问题以及思考

目前在做 Spark 升级(3.1.1升级到3.5.0)的时候,遇到了cache table导致的数据重复问题,这种情况一般来说是很少见的,因为一般很少用cache table语句。

当然该问题已经在Spark3.5.1已经解决了,可以查看对应的 SPARK-46995和SPARK-45592

从以上的分析知道:是在做join的一方(包含了AQEshuffleRead-coalesced) 影响了join的另一方,导致EnsureRequirements规则在做执行前检查的时候,会把join的另一个方的shuffle 数据调整为 包含了AQEshuffleRead-coalesced)的一方:

复制代码
                      Scan
                       |
                   Shuffle(200)
                       |
  Scan           AQEShuffleRead(10)
   |                   |
Shuffle(10)   InMemoryTableScanExec
    \            /
         Join    

这会导致shuffle后的数据进行了错位(因为之前是shuffle(200),现在变成了shuffle(10)),具体原因笔者还是没有分析清楚,但是其中涉及到的点跟规则EnsureRequirements 以及 CoalesceShufflePartitions 有关,
EnsureRequirements 会做一些执行前的判断,主要是做任务shuffle的协调,
CoalesceShufflePartitions 中 collectCoalesceGroups 会收集 QueryStageExec ,如果是 join 的话,则会join的子节点会收集到一个组里去,这样就能看到 join中会有 AQEShuffleRead coalesced 成对出现

相关推荐
网易易盾19 分钟前
广告合规系统如何选?检出能力、接入成本与运营闭环评估
大数据·人工智能
北极星电力网22 分钟前
实录 | 北极星第三届源网荷储一体化暨绿电直连高质量发展交流会落幕
大数据·人工智能
明志数科39 分钟前
具身智能训练数据的质量口径问题:从规模扩张到评测基准
大数据·人工智能
寰宇视讯39 分钟前
焙烤颜值经济持续升温,膳印科技以食品喷花打印技术树立行业标杆
大数据·人工智能·科技
samforce1 小时前
为什么微服务会退化成“分布式单体”?——软件架构里的嵌套率传导定律
人工智能·分布式·微服务·架构·软件架构·结构认知
码流子1 小时前
毫米波雷达+视频融合(雷视一体)在高速事件检测里怎么落地:从目标级融合到事件级研判
大数据·人工智能·音视频
Zhao-Jichao1 小时前
赛道 B:泥石流灾害预报及防灾策略,2026 年 MathorCup 数学应用挑战赛——大数据竞赛
大数据·数学建模
垂钓的小鱼12 小时前
自建爬虫、免费股票量化数据源、商业 量化API:三种股票数据获取方式的完整对比
大数据·人工智能
SelectDB技术团队2 小时前
SelectDB 架构演进与 ClickHouse 迁移指南
大数据·数据库·clickhouse·云原生·架构·数据分析·apache doris
一只小小的土拨鼠2 小时前
2026年MathorCup数学应用挑战赛大数据竞赛赛道A论文分享
大数据·妈妈杯