spark取决于guava的旧版本。
我用spark构建我的sbt assembly项目,不包括使用provided的spark,还包括最新版本的guava

但是,运行sbt-assembly时,jar中也排除了guava依赖项。

我的build.sbt:

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % sparkVersion % "provided",
  "org.apache.spark" %% "spark-sql" % sparkVersion % "provided",
  "org.apache.spark" %% "spark-mllib" % sparkVersion % "provided",
  "com.google.guava" % "guava" % "11.0"
)


如果删除% "provided",则同时包括sparkguava

那么,如何排除spark并包含guava

最佳答案

您正在寻找底纹选项。请参见here,但基本上您需要添加着色说明。像这样:

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("com.google.guava.**" -> "my_conf.@1")
    .inLibrary("com.google.guava" % "config" % "11.0")
    .inProject
  )


对于喜欢maven的人,也有相应的maven-shade-plugin。

关于scala - 覆盖Spark的 Guava 依赖版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41860121/

10-11 06:29
查看更多