2016-06-22 11 views
21

Witam Próbuję pobrać spark-core, spark-streaming, twitter4j i spark-streaming-twitter w pliku build.sbt poniżej:build.sbt: jak dodać zależności zapłonowe

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" 

ja po prostu wziął ten libraryDependencies online, więc jestem nie wiem, które wersje itp. użyć.

Czy ktoś może mi wyjaśnić, w jaki sposób powinienem naprawić te pliki .sbt. Spędziłem kilka godzin próbując to rozgryźć, ale żadna sugestia nie zadziałała. Zainstalowałem scala przez homebrew i jestem od wersji 2.11.8

Wszystkie moje błędy były o:

Modules were resolved with conflicting cross-version suffixes. 

Odpowiedz

32

Problemem jest to, że są mieszanie Scala 2.11 i 2.10 artefakty. Masz:

scalaVersion := "2.11.8" 

, a następnie:

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

Gdzie jest wymagane 2.10 artefakt. Jesteś również mieszanie wersji Spark zamiast korzystania spójną wersję:

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

Oto build.sbt że rozwiązuje oba problemy:

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 
) 

też nie trzeba ręcznie dodać twitter4j zależnościami, ponieważ są one dodane przechodnie przez spark-streaming-twitter.

+1

Dziękuję bardzo! Jedno szybkie pytanie czy wersja scala ('2.11.8') będzie działała ze wszystkimi bibliotekami iskier, które mają wersję' 1.6.1'? – Bobby

+2

Tak. Spark 1.6.1 ma kompilacje zarówno dla wersji 2.10, jak i 2.11 wersji scala. – marcospereira

+0

Okay! Dziękuję za pomoc i informacje! – Bobby

Powiązane problemy