Spark新手在IntelliJ中导入SBT(1.7.2)至Spark3.1.2时遇报错
Spark 3.1.2 + SBT 1.7.2 导入IntelliJ报错解决方案
问题根源
Spark 3.1.2仅兼容Scala 2.12.x版本,而SBT 1.7.2默认使用的Scala版本(如2.13.x)超出该范围,导致版本不匹配报错。
解决步骤
1. 固定build.sbt中的Scala版本
在项目根目录的build.sbt文件中,明确指定Spark兼容的Scala版本:
// 指定Scala版本为Spark 3.1.2适配的2.12.15 scalaVersion := "2.12.15" // 添加Spark依赖(使用%%自动匹配Scala版本) libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "3.1.2" % "provided", "org.apache.spark" %% "spark-sql" % "3.1.2" % "provided" )
2. 配置IntelliJ的SBT运行参数
- 打开IntelliJ的
File > Settings > Build, Execution, Deployment > Build Tools > SBT - 在
JVM options for SBT输入框中添加:-Dsbt.scala.version=2.12.15 - 点击右侧SBT面板的刷新图标,重新导入依赖
3. 清除缓存重启项目
- 执行
File > Invalidate Caches... > Invalidate and Restart,清除IntelliJ本地缓存 - 等待项目重新索引完成后,再次检查依赖导入状态
4. 清理本地仓库冲突依赖
若上述步骤无效,手动删除本地SBT仓库中冲突的高版本Scala依赖:
- 找到本地仓库路径(默认是
~/.ivy2/cache/org.scala-lang或~/.sbt) - 删除其中版本高于2.12.x的文件夹,再重新导入SBT项目
内容的提问来源于stack exchange,提问作者shivam234556
相关产品推荐
相关产品推荐

