我正在开发一个使用xgboost4j的spark应用程序。 https://github.com/dmlc/xgboost/tree/master/jvm-packages
由于jar的本地C依赖性,此包需要编译到本地体系结构。但是群集具有与开发笔记本电脑不同的架构。如何通过群集中的一个运行sbt程序集时替换程序包?或者你会建议通过%"提供" ?
答案 0 :(得分:5)
对(提供/编译)库使用后缀,如:
val suffix = Option(System getProperty "provided").isDefined match {
case true => "provided"
case false => "compile"
}
libraryDependencies += "org.apache.spark" %% "spark-sql" % Spark.version % suffix
如果你需要你的uberjar中的所有罐子,请运行sbt -Dprovided assembly