为什么使用 Spark GraphX 时 sbt 更新失败 "Conflicting cross-version suffixes"?

Why does sbt update fail with "Conflicting cross-version suffixes" with Spark GraphX?

这是我在 Intellij 上使用 scala 的 spark sbt

version := "0.1"

scalaVersion := "2.11.11"

// https://mvnrepository.com/artifact/org.apache.spark/spark-graphx_2.10
libraryDependencies += "org.apache.spark" % "spark-graphx_2.10" % "2.1.0"

// https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.11
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.0"

// https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"

我收到以下错误

[error] (*:update) Conflicting cross-version suffixes in:org.apache.spark:spark-launcher, org.json4s:json4s-ast,           org.apache.spark:spark-network-shuffle, org.scalatest:scalatest, com.twitter:chill, org.json4s:json4s-jackson, com.fasterxml.jackson.module:jackson-module-scala, org.json4s:json4s-core,org.apache.spark:spark-unsafe, org.apache.spark:spark-tags, org.apache.spark:spark-core, org.apache.spark:spark-network-common
[error] (*:ssExtractDependencies) Conflicting cross-version suffixes in: org.apache.spark:spark-launcher, org.json4s:json4s-ast, org.apache.spark:spark-network-shuffle, org.scalatest:scalatest, com.twitter:chill, org.json4s:json4s-jackson, com.fasterxml.jackson.module:jackson-module-scala, org.json4s:json4s-core, org.apache.spark:spark-unsafe, org.apache.spark:spark-tags, org.apache.spark:spark-core, org.apache.spark:spark-network-common

任何人都可以让我知道如何更正此问题。在我看来,spark-graphx 与 spark_core 相矛盾。如何找到正确的 SBT 文件?或者我应该怎么做才能让这个 sbt 文件正常工作。我可以降低 graphx 和 spark 的版本,但更愿意降低 spark 的版本。

在您的 sbt 文件中,依赖项称为 spark-_。您在 graphX 依赖项中使用了不同的 scala 版本。

如果您使用 Spark 2.x,我建议您使用 scala 2.11,这样您只需更改 graphx 依赖项。

libraryDependencies += "org.apache.spark" % "spark-graphx_2.11" % "2.1.0"

无论如何,你不需要在每个依赖项中都写scala版本。如果你写两个百分号 %%,Sbt 将根据 scalaVersion 值进行推断。 Here,可以看例子