我尝试使用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.1
:not found
所以我不得不将其修改为
"org.apache.spark" % "spark-core_2.10" % "1.1.1",
但仍有错误说:
unresolved dependency spark-mllib;1.1.1 : not found
任何人都知道如何在.sbt
文件中添加Mllib的依赖关系?
答案 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")