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

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

当然该问题已经在Spark3.5.1已经解决了,可以查看对应的 SPARK-46995SPARK-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 成对出现

相关推荐
wang_yb5 小时前
数据会说谎?三大推断方法帮你“审问”数据真相
大数据·databook
天远数科6 小时前
Golang并发实战:高效对接天远API实现海量用户画像构建
大数据·api
expect7g6 小时前
Paimon源码解读 -- Compaction-2.KeyValueFileWriterFactory
大数据·后端·flink
第二只羽毛6 小时前
C++ 高性能编程要点
大数据·开发语言·c++·算法
jason成都7 小时前
elasticsearch部署时创建用户密码
大数据·elasticsearch·jenkins
新华经济8 小时前
合同管理系统2025深度测评:甄零科技居榜首
大数据·人工智能·科技
黑客思维者8 小时前
招商银行信用卡AI客服系统:从0到1实战笔记
大数据·人工智能·笔记
醇氧10 小时前
【git】 撤回一个本地提交
大数据·git·elasticsearch
Elastic 中国社区官方博客10 小时前
Elasticsearch:数据脱节如何破坏现代调查
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
Wang's Blog10 小时前
Elastic Stack梳理:Logstash Input插件详解与Codec插件应用指南之文件监控、多行日志处理与Kafka集成
分布式·搜索引擎·kafka·elastic search