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

IntelliJ中Scala+Spark项目突发依赖解析错误的原因与解决

Spark依赖解析偶发错误的原因与解决方法

问题场景

使用IntelliJ开发基于Spark的Scala项目,多数时候运行正常,但偶尔启动IntelliJ会出现依赖解析错误,错误日志如下:

[warn]  Note: Unresolved dependencies path:
[error] stack trace is suppressed; run 'last update' for the full output
[error] stack trace is suppressed; run 'last ssExtractDependencies' for the full output
[error] (update) sbt.librarymanagement.ResolveException: Error downloading org.apache.spark:spark-core_2.12:3.0.0-preview2
[error]   Not found
[error]   Not found
[error]   not found: C:\...\.ivy2\localorg.apache.spark\spark-core_2.12\3.0.0-preview2\ivys\ivy.xml
[error]   checksum format error: C:\....\AppData\Local\Coursier\Cache\v1\https\repo1.maven.org\maven2\org\apache\spark\spark-core_2.12\3.0.0-preview2\.spark-core_2.12-3.0.0-preview2.pom__sha1
[error]   checksum format error: C:\....\AppData\Local\Coursier\Cache\v1\https\repo1.maven.org\maven2\org\apache\spark\spark-core_2.12\3.0.0-preview2\.spark-core_2.12-3.0.0-preview2.pom__sha1
[error] Error downloading org.apache.spark:spark-sql_2.12:3.0.0-preview2
[error]   Not found
[error]   Not found
[error]   not found: C:\...\.ivy2\localorg.apache.spark\spark-sql_2.12\3.0.0-preview2\ivys\ivy.xml
[error]   checksum format error: C:\....\AppData\Local\Coursier\Cache\v1\https\repo1.maven.org\maven2\org\apache\spark\spark-sql_2.12\3.0.0-preview2\.spark-sql_2.12-3.0.0-preview2.pom__sha1
[error] (ssExtractDependencies) sbt.librarymanagement.ResolveException: Error downloading org.apache.spark:spark-core_2.12:3.0.0-preview2
[error]   Not found
[error]   Not found
[error]   not found: C:\...\.ivy2\localorg.apache.spark\spark-core_2.12\3.0.0-preview2\ivys\ivy.xml
[error]   checksum format error: C:\....\AppData\Local\Coursier\Cache\v1\https\repo1.maven.org\maven2\org\apache\spark\spark-core_2.12\3.0.0-preview2\.spark-core_2.12-3.0.0-preview2.pom__sha1
[error] Error downloading org.apache.spark:spark-sql_2.12:3.0.0-preview2
[error]   Not found
[error]   Not found
[error]   not found: C:\...\.ivy2\localorg.apache.spark\spark-sql_2.12\3.0.0-preview2\ivys\ivy.xml
[error]   checksum format error: C:\....\AppData\Local\Coursier\Cache\v1\https\repo1.maven.org\maven2\org\apache\spark\spark-sql_2.12\3.0.0-preview2\.spark-sql_2.12-3.0.0-preview2.pom__sha1
[error] Total time: 1 s, completed 17 Sep 2022, 15:13:49
[info] shutting down sbt server

项目build.sbt配置:

/*ThisBuild / version := "0.1.0-SNAPSHOT"

ThisBuild / scalaVersion := "2.13.8"

lazy val root = (project in file("."))
  .settings(
    name := "spark-learning"
  )*/

// Name of the package
name := "spark-learning"
// Version of our package
version := "1.0"
// Version of Scala
scalaVersion := "2.12.14"
// Spark library dependencies
libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "3.0.0-preview2",
  "org.apache.spark" %% "spark-sql" % "3.0.0-preview2"
)

问题原因

  1. 缓存文件损坏:错误日志中的*checksum format error*是核心线索,说明Coursier(sbt默认依赖下载工具)的本地缓存文件不完整或损坏。通常是之前的依赖下载过程被意外中断(比如强制关闭IntelliJ、网络断连、系统断电),导致缓存的校验文件格式异常,无法通过校验。
  2. 预览版依赖不稳定:你使用的Spark版本是3.0.0-preview2,属于预览版本,这类版本在Maven仓库中的存储可能存在不确定性,比如远程仓库的校验信息后续发生变更,导致本地缓存的校验值与远程不匹配。

解决方法

方法一:清理本地依赖缓存

  • 找到Coursier缓存路径C:\Users\<你的用户名>\AppData\Local\Coursier\Cache,删除v1\https\repo1.maven.org\maven2\org\apache\spark\下spark-core_2.12和spark-sql_2.12对应的3.0.0-preview2文件夹,也可以直接清空整个Coursier缓存目录。
  • 删除Ivy2本地缓存中对应的Spark依赖路径:C:\Users\<你的用户名>\.ivy2\local\org.apache.spark\下的相关文件夹。
  • 打开IntelliJ,点击右侧sbt面板的Reload All sbt Projects按钮,或者在项目根目录执行命令sbt clean update,重新下载依赖。

方法二:更换稳定版Spark依赖

预览版本身存在不确定性,建议替换为正式发布的稳定版本,比如修改build.sbt中的Spark版本为3.0.1(3.0系列首个稳定版):

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "3.0.1",
  "org.apache.spark" %% "spark-sql" % "3.0.1"
)

修改后重新加载sbt项目,即可避免预览版带来的依赖不稳定问题。

方法三:强制更新校验信息

在IntelliJ的sbt面板中执行update clean命令,或者在命令行执行sbt update --refresh-options,强制sbt重新拉取远程依赖的校验信息,覆盖本地损坏的缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:10:50