我正在尝试使用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的依赖关系?
最佳答案
正如@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发布的。
应该注意的是,如果您要制作一个组装 jar 来部署您的应用程序,则可能希望将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包无论如何都会在执行程序的路径上。
关于scala - MLlib依赖项错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438353/