2016-06-22 40 views
21

Ciao Sto cercando di scaricare spark-core, spark-streaming, twitter4j, e spark-streaming-twitter nel file build.sbt di seguito:build.sbt: come aggiungere dipendenze scintilla

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" 

ho semplicemente preso questo libraryDependencies on-line, quindi sono non so quali versioni, ecc. da usare.

Qualcuno può spiegarmi come risolvere questo file .sbt. Ho passato un paio d'ore a cercare di capirlo, ma nessuno dei suggerimenti ha funzionato. Ho installato scala attraverso homebrew e sono sulla versione 2.11.8

Tutti i miei errori erano circa:

Modules were resolved with conflicting cross-version suffixes. 

risposta

32

Il problema è che si stia mescolando Scala 2.11 e 2.10 artefatti. Hai:

scalaVersion := "2.11.8" 

E poi:

libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1" 

Dove viene richiesta la 2.10 manufatto. Siete anche mescolando versioni Spark invece di utilizzare una versione coerente:

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

Ecco un build.sbt che risolve entrambi i problemi:

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 
) 

Inoltre non è necessario aggiungere manualmente twitter4j dipendenze dal momento che sono aggiunto in via transitiva da spark-streaming-twitter.

+1

Grazie mille! Una domanda veloce sarà la versione di scala ('2.11.8') che funziona con tutte le librerie spark che hanno la versione' 1.6.1'? – Bobby

+2

Sì. Spark 1.6.1 ha build per entrambe le versioni 2.10 e 2.11 di scala. – marcospereira

+0

Ok! Grazie per l'aiuto e le informazioni! – Bobby