You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 3.5.*中mapInPandas执行密集型任务性能骤降问题

Spark 3.5+ 下mapInPandas执行计算密集型任务性能骤降的解决方案

问题现象

  • 升级至Spark 3.5.*系列版本(包括4.0.0-preview2预览版)后,使用mapInPandas执行计算密集型任务(例如并行计算SHAP值)时出现显著性能下降
  • Spark 3.1至3.4版本性能表现稳定,3.5版本的单迭代执行时间较3.4.4版本提升5-8倍,不同规模的LGB模型测试均存在该问题

排查过程

  • 查阅Spark 3.5官方发布说明,尝试回滚相关配置项,未解决问题
  • 检查任务的逻辑与物理执行计划,未发现异常
  • 使用sparkmeasure工具分析执行过程,未定位到性能瓶颈
  • 覆盖测试3.5.0至3.5.5所有子版本,问题均复现;测试4.0.0-preview2版本,问题依然存在

根因定位

Spark 3.5版本修复SPARK-42613 bug后,调整了spark.task.cpus参数的默认行为:当未显式设置该参数时,默认值变为1。而计算密集型任务(如SHAP值计算)需要利用多核心并行执行,默认值1限制了任务可用的核心数,直接导致性能骤降。

解决方法

显式配置spark.task.cpus参数为任务可用的核心数即可恢复性能:

  • 配置文件方式:在Spark配置文件中添加
spark.task.cpus = <实际可用核心数>
  • 代码动态设置:在Spark会话初始化后添加
spark.conf.set("spark.task.cpus", "<实际可用核心数>")

内容的提问来源于stack exchange,提问作者jsn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:32:36