sombreado del conjunto sbt para crear un tarro de grasa que se ejecute en la chispa

Estoy usando el ensamblaje sbt para crear un tarro gordo que puede funcionar con chispa. Tener dependencias degrpc-netty. La versión de guayaba en spark es más antigua que la requerida porgrpc-netty y me encuentro con este error:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument. Pude resolver esto estableciendo userClassPathFirst en verdadero en la chispa, pero conduce a otros errores.

Corrígeme si estoy equivocado, pero por lo que entiendo, no debería tener que establecer userClassPathFirst en true si sombreo correctamente. Así es como hago sombreado ahora:

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"
)

¿Qué estoy haciendo mal aquí y cómo lo soluciono?

Respuestas a la pregunta(1)

Su respuesta a la pregunta