Ошибка зависимости 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")