记一次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 成对出现

相关推荐
KmSH8umpK1 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第七篇
数据库·redis·分布式
_F_y1 天前
仿RabbitMQ实现消息队列-服务端核心模块实现(4)
分布式·rabbitmq
lizhihai_991 天前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
ZGi.ai1 天前
智能客服系统设计:从工单分类到自动派单的工程实现
大数据·人工智能·分类
PaperData1 天前
2000-2023年地级市数字基础设施评价指标体系
大数据·网络·数据库·人工智能·数据分析·经管
Blockchain Learning1 天前
去中心化身份(DID)模型解析:区块链如何重塑身份管理?
大数据·去中心化·区块链
xcbrand1 天前
政府事业机构品牌策划公司哪家可靠
大数据·人工智能·python
程序鉴定师1 天前
如何选择合适的深圳小程序开发公司?
大数据·小程序
晨启AI1 天前
GPT-5.5 来了!OpenAI 最新提示词指南深度解读
大数据·人工智能·ai·提示词
地球资源数据云1 天前
中国陆地生态系统主要植物功能特征空间分布数据
大数据·数据库·人工智能·机器学习