我想構建一個Spark應用程序Jar。我的期望是:當我通過./spark-submit
執行jar時,應用程序將利用我自己構建的mllib(例如:spark-mllib_2.11-2.2.0-SNAPSHOT.jar
)。。如何使用修改後的Spark MLlib模塊作爲依賴關係?
這是我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
。
任何人都可以幫助我解決這個問題。提前致謝!