【发布时间】:2017-07-25 19:42:00
【问题描述】:
我想构建一个 Spark 应用程序 Jar。我的期望是:当我通过./spark-submit 执行jar 时,应用程序将使用我自己构建的mllib(ex:spark-mllib_2.11-2.2.0-SNAPSHOT.jar)。
这是我的build.sbt:
name:="SoftmaxMNIST"
version := "1.0"
scalaVersion := "2.11.4"
unmanagedJars in Compile += file("lib/spark-mllib_2.11-2.2.0-SNAPSHOT.jar")
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.0",
"org.apache.spark" %% "spark-sql" % "2.1.0
)
// META-INF discarding
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
}
我已经将我自己构建的spark-mllib_2.11-2.2.0-SNAPSHOT.jar 放到了/My-Project-Path/lib/ 目录中。但它不起作用。 应用程序似乎仍在使用 Spark 的默认 mllib jar,在我的情况下它在 PATH/spark-2.1.0-bin-hadoop2.7/jars/ 目录中
PS:最终目的是当我在 AWS EC2 上运行我的应用程序时,我的应用程序总是使用我自己构建的 mllib 而不是默认的。我可能会经常修改自己的mllib。
谁能帮我解决这个问题。提前致谢!
【问题讨论】:
标签: apache-spark amazon-ec2 sbt apache-spark-mllib sbt-assembly