они не будут включены в ваш jar-файл и не будут затенены (следовательно, spark будет использовать свою собственную не заштрихованную версию guava, которая есть в кластере).

ользую сборку sbt для создания толстой банки, которая может работать на спарке. Есть зависимости отgrpc-netty, Версия Guava на спарк старше, чем требуетсяgrpc-netty и я сталкиваюсь с этой ошибкой:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument, Я смог решить эту проблему, установив для userClassPathFirst значение true при искре, но это приводит к другим ошибкам.

Поправьте меня, если я ошибаюсь, но из того, что я понимаю, мне не нужно устанавливать для userClassPathFirst значение true, если я правильно выполняю заливку. Вот как я делаю затенение сейчас:

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("com.google.guava.**" -> "my_conf.@1")
    .inLibrary("com.google.guava" % "guava" % "20.0")
    .inLibrary("io.grpc" % "grpc-netty" % "1.1.2")
)

libraryDependencies ++= Seq(
  "org.scalaj" %% "scalaj-http" % "2.3.0",
  "org.json4s" %% "json4s-native" % "3.2.11",
  "org.json4s" %% "json4s-jackson" % "3.2.11",
  "org.apache.spark" %% "spark-core" % "2.2.0" % "provided",
  "org.apache.spark" % "spark-sql_2.11" % "2.2.0" % "provided",
  "org.clapper" %% "argot" % "1.0.3",
  "com.typesafe" % "config" % "1.3.1",
  "com.databricks" %% "spark-csv" % "1.5.0",
  "org.apache.spark" % "spark-mllib_2.11" % "2.2.0" % "provided",
  "io.grpc" % "grpc-netty" % "1.1.2",
  "com.google.guava" % "guava" % "20.0"
)

Что я здесь не так делаю и как мне это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос