Mllib依赖错误

时间:2014-12-12 06:50:20

标签: scala apache-spark apache-spark-mllib

我尝试使用Mllib构建一个非常简单的scala独立应用程序,但在尝试编写程序时出现以下错误:

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.1not found

所以我不得不将其修改为

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

但仍有错误说:

unresolved dependency spark-mllib;1.1.1 : not found

任何人都知道如何在.sbt文件中添加Mllib的依赖关系?

2 个答案:

答案 0 :(得分:9)

正如@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发布的。

应该注意的是,如果你要制作一个装配罐来部署你的应用程序,你可能希望按照提供的方式标记spark-core。

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

因为spark-core软件包无论如何都会在执行程序的路径中。

答案 1 :(得分:1)

如果您使用Databricks sbt-spark-package plugin,则可以使用以下方法将依赖关系添加到build.sbt文件中:

sparkComponents ++= Seq("sql","hive", "mllib")