如何将Scala作业提交到Spark?

7
我有一个Python脚本,我能够以以下方式将其提交到Spark:
/opt/spark/bin/spark-submit --master yarn-client test.py

现在,我尝试以同样的方式提交一个Scala程序:
/opt/spark/bin/spark-submit --master yarn-client test.scala

作为结果,我收到以下错误信息:
Error: Cannot load main class from JAR file:/home/myname/spark/test.scala
Run with --help for usage help or --verbose for debug output

Scala程序本身只是一个Hello World程序:
object HelloWorld {
    def main(args: Array[String]): Unit = {
        println("Hello, world!")
    }
}

我做错了什么?

2个回答

8

首先,您需要创建一个jar文件。不能直接提交Scala源代码。如果有疑问,请参见使用sbt入门指南

之后,只需添加一个指向HelloWorldclass参数。假设没有包:

/opt/spark/bin/spark-submit --master yarn-client --class "HelloWorld" path_to.jar

4
取决于您使用的集群模式。请查看通用命令。
./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

对于yarn-client,
/opt/spark/bin/spark-submit \
  --class "HelloWorld" your_jar_with_scala_file \
  --master yarn-client

请查看Spark文档以更好地理解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接