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

全新安装后Spark Core正常,添加Spark SQL出现依赖冲突报错

解决Spark SQL依赖引发的scala-parser-combinators版本冲突问题

问题背景

在Scala 2.13.8 + Spark 3.3.0环境下,仅引入spark-core和scala-parser-combinators 2.1.1时项目可正常运行,但添加spark-sql依赖后,出现版本冲突报错——手动指定的scala-parser-combinators_2.13:2.1.1与Spark Catalyst组件依赖的1.1.2版本不兼容。

解决方案

方案一:强制使用指定版本,排除Spark自带的依赖

如果你的业务代码依赖scala-parser-combinators 2.1.1的特性,可以在添加spark-sql依赖时,排除其自带的低版本scala-parser-combinators,强制使用你指定的版本。修改后的build.sbt如下:

scalaVersion := "2.13.8"
name := "hello-world"
organization := "ch.epfl.scala"
version := "1.0"

libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.1"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.3.0"
// 排除Spark SQL自带的scala-parser-combinators依赖
libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.3.0" exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13")

方案二:移除手动依赖,使用Spark自带版本

如果你的代码不需要scala-parser-combinators 2.1.1的新功能,直接移除手动引入的该依赖,使用Spark 3.3.0自带的1.1.2版本即可,修改后的build.sbt如下:

scalaVersion := "2.13.8"
name := "hello-world"
organization := "ch.epfl.scala"
version := "1.0"

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.3.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.3.0"

原因说明

Spark 3.3.0针对Scala 2.13的发行版中,其Catalyst模块(SQL引擎核心组件)默认依赖scala-parser-combinators 1.1.2。当你手动引入更高版本的同依赖时,SBT的依赖解析机制会检测到版本冲突,从而触发报错。通过以上两种方式对齐依赖版本,即可解决冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:03:34