Bonjour, j'essaye de télécharger spark-core
, spark-streaming
, Twitter4j
, et spark-streaming-Twitter
dans le fichier build.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, je ne sais donc pas quelles versions, etc. utiliser.
Quelqu'un peut-il m'expliquer s'il vous plaît comment je devrais réparer ce fichier .sbt. J'ai passé quelques heures à essayer de comprendre, mais aucune des suggestions n'a fonctionné. J'ai installé scala
via homebrew et je suis sur la version 2.11.8
Toutes mes erreurs concernaient:
Modules were resolved with conflicting cross-version suffixes.
Le problème est que vous mélangez des artefacts Scala 2.11 et 2.10. Vous avez:
scalaVersion := "2.11.8"
Et alors:
libraryDependencies += "org.Apache.spark" % "spark-streaming_2.10" % "1.4.1"
Où le 2.10
l'artefact est requis. Vous mélangez également les 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 une 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 également pas besoin d'ajouter manuellement Twitter4j
_ dépendances puisqu'elles sont ajoutées transitoirement par spark-streaming-Twitter
.
Ça marche 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"
)