J'utilise l'assemblage sbt pour créer un gros pot qui peut fonctionner sur étincelle. Avoir des dépendances sur grpc-netty
. La version de goyave sur spark est plus ancienne que celle requise par grpc-netty
et je rencontre cette erreur: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument. J'ai été capable de résoudre cela en définissant userClassPathFirst à true sur spark, mais conduit à d'autres erreurs.sbt assemblage ombrage pour créer un gros pot pour fonctionner sur étincelle
Corrigez-moi si je me trompe, mais d'après ce que je comprends, je ne devrais pas avoir à définir userClassPathFirst à true si je fais correctement l'ombrage. Voici comment je fais l'ombrage maintenant:
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("com.google.guava.**" -> "[email protected]")
.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'est-ce que je fais mal ici et comment puis-je le réparer?
Merci Nikolay. Votre solution a fonctionné comme un charme! –
@Kumar Bharath Prabhu Heureux que cela a aidé! –