我是 Spark 和 Scala 的新手,但希望这不是一个多余/愚蠢的问题 - 我还没有找到答案。

我用 sbt-assembly 工具编译了一个胖 jar, list 文件包含 MainClass: com.package.MyMainClass 行。但是,spark-submit 仍然要求我使用 --class 参数来定义主类。从 this Spark configuration page ,我收集到 spark-submit 从 conf/spark-defaults.conf 文件中获取其配置详细信息。我的其他属性( spark.masterspark.app.name )似乎在没有命令行参数的情况下加载得很好,但我无法找到在此文件中指定项目主类的方法。我随机尝试了 spark.class main.classclass 之类的东西,但显然在黑暗中刺伤不太好。

有任何想法吗?当 spark-submit MyJar.jar 如此干净时,我想避免使用非常难看的脚本将应用程序部署到集群。谢谢。

最佳答案

查看 org.apache.spark.deploy.SparkSubmitArguments.scala here 的源代码,它看起来应该选择您的 Main-Class manifest 属性:

mainClass = jar.getManifest.getMainAttributes.getValue("Main-Class")

我还没有测试过这个,但尝试用“Main-Class”替换“MainClass”。

关于scala - 使用不带 --class 参数的 spark-submit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24921618/

10-16 21:38