gpt4 book ai didi

scala - Spark 和 Azure-Cosmosdb 的跨版本冲突

转载 作者:行者123 更新时间:2023-12-01 19:34:13 25 4
gpt4 key购买 nike

我已经在这个问题上苦苦挣扎有一段时间了,但我已经正式陷入困境了。我正在尝试编译一个包含在 Azure Databricks 上运行的简单 scala/spark 作业的 jar,其中包括对 CosmosDB 的依赖项。导入 azure-cosmosdb-spark 会在编译过程中引入冲突的跨版本错误,我认为这是某些传递依赖性的结果。我尝试了许多不同的 Spark 和 scala 版本,但没有任何帮助,并且错误消息也没有说明太多信息。

我重现错误的最小示例只是一个 build.sbt,目前没有编译任何 scala 类。我的 build.sbt 的示例如下:

name := "ranchero"

version := "0.0.1"

scalaVersion := "2.11.8"
val sparkVersion = "2.2.0"

// additional libraries
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion % "provided",
"org.apache.spark" %% "spark-sql" % sparkVersion % "provided",
"org.apache.spark" %% "spark-mllib" % sparkVersion % "provided",
"joda-time" % "joda-time" % "2.9.9",
"org.scalatest" %% "scalatest" % "3.0.0" % "test",
"com.microsoft.azure" % "azure-cosmosdb-spark_2.2.0_2.11" % "1.1.0"
)


resolvers ++= Seq(
"apache-snapshots" at "http://repository.apache.org/snapshots/",
"Maven central" at "http://repo1.maven.org/maven2/",
)

如果我注释掉 cosmosdb 依赖项,一切编译都会很好。添加该 dep 后,我得到了 flavor 错误:

[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/*******/development/ranchero/}ranchero:
[error] org.apache.spark:spark-launcher _2.10, _2.11
[error] org.json4s:json4s-ast _2.10, _2.11
[error] org.apache.spark:spark-network-shuffle _2.10, _2.11
[error] com.twitter:chill _2.10, _2.11
[error] org.json4s:json4s-jackson _2.10, _2.11
[error] com.fasterxml.jackson.module:jackson-module-scala _2.10, _2.11
[error] org.json4s:json4s-core _2.10, _2.11
[error] org.apache.spark:spark-unsafe _2.10, _2.11
[error] org.apache.spark:spark-core _2.10, _2.11
[error] org.apache.spark:spark-network-common _2.10, _2.11
[error] java.lang.RuntimeException: Conflicting cross-version suffixes in: org.apache.spark:spark-launcher, org.json4s:json4s-ast, org.apache.spark:spark-network-shuffle, 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-core, org.apache.spark:spark-network-common

不幸的是,这并没有提供太多帮助。关于如何纠正这个问题有什么建议吗?

最佳答案

让 sbt 处理所有依赖项的 scala 版本。尝试用以下内容替换 azure-cosmosdb 依赖项:

"com.microsoft.azure" %% "azure-cosmosdb-spark_2.2.0" % "1.1.0"

双百分号将告诉 sbt 处理依赖项的 scala 版本标记。至少 sbt shell 以更正后的 build.sbt 开头。

关于scala - Spark 和 Azure-Cosmosdb 的跨版本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com