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.
27
demandé sur marcospereira 2016-06-22 06:41:23

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.

35
répondu marcospereira 2016-11-17 19:58:20

Ç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"
)
1
répondu AlexPes 2018-04-30 20:15:11