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

运行配置Delta的PySpark代码报Spark Context停止驱动重启错误如何解决?

错误产生原因
  • 主动终止Spark上下文:若代码在Notebook环境运行,你手动调用spark_sess.stop()会终止Notebook默认绑定的SparkContext,平台检测到上下文丢失后会触发Driver重启,抛出该错误。
  • Delta依赖缺失:代码中配置了Delta Lake的SQL扩展和Catalog,但是运行环境没有对应版本的Delta依赖包,Spark初始化时加载类失败,直接导致SparkContext崩溃退出。
  • 版本不兼容:Delta Lake版本与当前Spark版本不匹配,触发类加载冲突、方法不存在等错误,导致Driver进程崩溃。
  • Driver资源不足:Driver分配的内存、CPU等资源达到上限,被集群资源管理器主动Kill,导致SparkContext停止。
排查步骤
  • 先确认运行环境:如果是在Notebook中执行代码,先检查是否存在主动调用spark.stop()的逻辑,Notebook环境默认会自动管理SparkSession生命周期,不需要手动停止。
  • 核对依赖情况:执行spark.sparkContext.listJars()查看运行时的Jar包列表,确认是否存在io.delta开头的Delta相关依赖。
  • 校验版本匹配:确认当前Spark版本与Delta版本的对应关系,官方匹配规则为:Spark 3.2.x对应Delta 1.2.x、Spark 3.3.x对应Delta 2.2.x、Spark 3.4.x对应Delta 2.4.x、Spark 3.5.x对应Delta 3.0.x及以上。
  • 查看Driver日志:拉取Driver进程的完整运行日志,排查是否存在ClassNotFoundException、OutOfMemoryError等明确的错误堆栈。
修复方案
  • 若为Notebook环境运行:直接删除代码末尾的spark_sess.stop()行即可,不需要手动终止SparkSession。
  • 补充Delta依赖:本地运行时启动PySpark添加参数--packages io.delta:delta-core_2.12:<对应Delta版本号>;集群提交任务时在Spark配置中添加spark.jars.packages参数指定Delta依赖坐标,或者提前将Delta Jar包放入集群ClassPath。
  • 对齐版本:根据Spark版本调整Delta依赖的版本,保证两者兼容。
  • 调大Driver资源:若日志提示内存溢出,初始化SparkSession时添加配置.config("spark.driver.memory", "4g"),根据实际业务需求调整内存大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:15:07