sombreamento de montagem sbt para criar jar de gordura para executar na faísca

Estou usando o assembly sbt para criar um frasco de gordura que pode funcionar com faísca. Tem dependências emgrpc-netty. A versão do Goiaba no spark é mais antiga que a exigida pelogrpc-netty e eu me deparo com este erro:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument. Consegui resolver isso definindo userClassPathFirst como true no spark, mas gera outros erros.

Corrija-me se estiver errado, mas, pelo que entendi, não seria necessário definir userClassPathFirst como true se fizer o sombreamento corretamente. Veja como faço o sombreamento agora:

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

O que estou fazendo de errado aqui e como corrigi-lo?

questionAnswers(1)

yourAnswerToTheQuestion