construire.sbt: comment ajouter des dépendances d'étincelles
Bonjour, je suis en train de télécharger spark-core
, spark-streaming
,twitter4j
et spark-streaming-twitter
dans la construction.fichier sbt ci-dessous:
name := "hello"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1"
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1"
libraryDependencies ++= Seq(
"org.twitter4j" % "twitter4j-core" % "3.0.3",
"org.twitter4j" % "twitter4j-stream" % "3.0.3"
)
libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "0.9.0-incubating"
j'ai simplement pris ce libraryDependencies
en ligne donc je ne suis pas sûr quelles versions, etc. utiliser.
quelqu'un Peut-il m'expliquer comment je dois résoudre ce problème .fichiers sbt. J'ai passé quelques heures à essayer de comprendre, mais aucun des suggesstion travaillé. J'ai installé scala
par le biais de homebrew et je suis sur la version 2.11.8
Toutes mes erreurs ont été sur:
Modules were resolved with conflicting cross-version suffixes.
2 réponses
le problème est que vous mélangez des artefacts Scala 2.11 et 2.10. Vous avez:
scalaVersion := "2.11.8"
puis:
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1"
2.10
artéfact est requis. Vous mélangez aussi des versions Spark au lieu d'utiliser une version cohérente:
// spark 1.6.1
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1"
// spark 1.4.1
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1"
// spark 0.9.0-incubating
libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "0.9.0-incubating"
Voici un build.sbt
qui résout les deux problèmes:
name := "hello"
version := "1.0"
scalaVersion := "2.11.8"
val sparkVersion = "1.6.1"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-streaming" % sparkVersion,
"org.apache.spark" %% "spark-streaming-twitter" % sparkVersion
)
Vous n'avez pas besoin d'ajouter manuellement twitter4j
dépendances depuis qu'ils sont ajoutés transitivement par spark-streaming-twitter
.
Ça fonctionne pour moi:
name := "spark_local"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.twitter4j" % "twitter4j-core" % "3.0.5",
"org.twitter4j" % "twitter4j-stream" % "3.0.5",
"org.apache.spark" %% "spark-core" % "2.0.0",
"org.apache.spark" %% "spark-sql" % "2.0.0",
"org.apache.spark" %% "spark-mllib" % "2.0.0",
"org.apache.spark" %% "spark-streaming" % "2.0.0"
)