我是Spark和Scala的新手,但希望这不是一个多余/愚蠢的问题 - 我还没有找到答案。
我使用sbt-assembly工具编译了一个胖jar,而MANIFEST文件包含了行MainClass: com.package.MyMainClass
。但是,spark-submit仍然要求我使用--class
参数来定义主类。从this Spark configuration page开始,我收集spark-submit从conf/spark-defaults.conf
文件中获取其配置详细信息。我的其他属性(spark.master
,spark.app.name
)似乎在没有命令行参数的情况下加载得很好,但我还没有找到一种方法来指定项目的主要类这个文件。我已经随机尝试了spark.class
main.class
和class
之类的内容,但显然在黑暗中刺伤并不顺利。
有什么想法吗?当spark-submit MyJar.jar
如此干净时,我想避免使用非常难看的脚本将应用程序部署到集群。感谢。
答案 0 :(得分:2)
查看org.apache.spark.deploy.SparkSubmitArguments.scala
here的源代码,看起来它应该会获取您的Main-Class清单属性:
mainClass = jar.getManifest.getMainAttributes.getValue("Main-Class")
我没有对此进行测试,但尝试将'MainClass'替换为'Main-Class'。