2014-12-12 23 views
10

Staram się zbudować bardzo prosty scala autonomiczną aplikację używając Mllib, ale pojawia się następujący komunikat o błędzie podczas próby bulid program:Mllib błąd zależność

Object Mllib is not a member of package org.apache.spark 

Wtedy zdałem sobie sprawę, że muszę dodać Mllib jako zależność następująca:

version := "1" 
scalaVersion :="2.10.4" 

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core"    % "1.1.0", 
"org.apache.spark" %% "spark-mllib"    % "1.1.0" 
) 

Ale tutaj mam błąd, który mówi:

unresolved dependency spark-core_2.10.4;1.1.1: not found

więc musiałem zmodyfikować go do

"org.apache.spark" % "spark-core_2.10" % "1.1.1",

Ale wciąż jest błąd, który mówi:

unresolved dependency spark-mllib;1.1.1 : not found

Ktoś wie jak dodać zależność Mllib w .sbt pliku?

+0

coś dziwnego wydaje się dziać z SBT i scala kompatybilnych binarne wersje, ale robi to explictly tak jak w przypadku iskrzenia: '" org.apache.spark "%" spark-mllib_2.10 "%" 1.1.1 "' powinno działać. (Buduję wszystkie moje projekty z Mavenem, więc nie znam SBT szczególnie dobrze). – lmm

Odpowiedz

9

Jak @lmm wskazał, można zamiast zawierać bibliotek jak:

libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.10" % "1.1.0", "org.apache.spark" % "spark-mllib_2.10" % "1.1.0" )

W SBT %% zawiera wersję Scala i budujesz z scala wersji 2.10.4 natomiast artefaktów Spark są ogólnie opublikowane w stosunku do wersji 2.10.

Należy zauważyć, że jeśli zamierzasz wykonać słoik montażowy do wdrożenia aplikacji, możesz chcieć oznaczyć iskrowe jądro, jak podano np.

libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.10" % "1.1.0" % "provided", "org.apache.spark" % "spark-mllib_2.10" % "1.1.0" )

Ponieważ pakiet iskra-core będzie w drodze na egzekutora jakikolwiek.

Powiązane problemy