Ошибка зависимости Mllib
Я пытаюсь создать очень простое автономное приложение scala с помощью Mllib, но при попытке запугать программу я получаю следующую ошибку:
Object Mllib is not a member of package org.apache.spark
Затем я понял, что мне нужно добавить Mllib как зависимость:
version := "1"
scalaVersion :="2.10.4"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.1.0",
"org.apache.spark" %% "spark-mllib" % "1.1.0"
)
Но здесь я получил сообщение об ошибке:
unresolved dependency spark-core_2.10.4;1.1.1
: not found
поэтому мне пришлось изменить его на
"org.apache.spark" % "spark-core_2.10" % "1.1.1",
Но есть еще ошибка, которая говорит:
unresolved dependency spark-mllib;1.1.1 : not found
Кто-нибудь знает, как добавить зависимость Mllib в файле .sbt
?
Ответы
Ответ 1
Как отметил @lmm, вы можете включить библиотеки как:
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.10" % "1.1.0",
"org.apache.spark" % "spark-mllib_2.10" % "1.1.0"
)
В sbt %% включена версия scala, и вы строите с помощью scala версии 2.10.4, тогда как артефакты Spark публикуются против 2.10 в целом.
Следует отметить, что если вы собираетесь создать банку сборки для развертывания своего приложения, вы можете отметить яркое ядро, как показано, например,
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.10" % "1.1.0" % "provided",
"org.apache.spark" % "spark-mllib_2.10" % "1.1.0"
)
Так как пакет искрового ядра всегда будет в пути на исполнителе.
Ответ 2
Вот еще один способ добавить зависимость к вашему файлу build.sbt
, если вы используете Databricks sbt-spark-package plugin
sparkComponents ++= Seq("sql","hive", "mllib")