繁体   English   中英

火花提交.scala文件

[英]spark-submit for a .scala file

我一直在运行一些测试spark scala代码,可能使用了一种不好的方式来处理spark-shell:

spark-shell --conf spark.neo4j.bolt.password=Stuffffit --packages neo4j-contrib:neo4j-spark-connector:2.0.0-M2,graphframes:graphframes:0.2.0-spark2.0-s_2.11 -i neo4jsparkCluster.scala 

这将在spark上执行我的代码,并在完成后弹出到外壳中。

现在,我试图在集群上运行它,我认为我需要使用spark-submit,我认为应该是:

spark-submit --conf spark.neo4j.bolt.password=Stuffffit --packages neo4j-contrib:neo4j-spark-connector:2.0.0-M2,graphframes:graphframes:0.2.0-spark2.0-s_2.11 -i neo4jsparkCluster.scala 

但是它不喜欢.scala文件,因此必须将其编译为类吗? scala代码是一个简单的scala文件,其中定义了几个帮助程序类,可以说没有真正的主类。 我看不到他的帮助文件,但也许我丢失了它,我可以只是提交文件还是必须以某种方式给它上课? 从而更改我的Scala代码?

我也将其添加到我的scala代码中:

从这里去了

val conf = new SparkConf.setMaster("local").setAppName("neo4jspark")


val sc = new SparkContext(conf)  

对此:

val sc = new SparkContext(new SparkConf().setMaster("spark://192.20.0.71:7077")

有两种快速而肮脏的方法:

  1. 无需修改scala文件

只需使用带有-i标志的spark shell:

$SPARK_HOME/bin/spark-shell -i neo4jsparkCluster.scala

  1. 修改scala文件以包含主要方法

一种。 编译:

scalac -classpath <location of spark jars on your machine> neo4jsparkCluster

b。 提交到您的集群:

/usr/lib/spark/bin/spark-submit --class <qualified class name> --master <> .

您将需要使用sbt打包scala应用程序,并将Spark作为依赖项包含在build.sbt文件中。

有关完整说明,请参见快速入门指南的独立应用程序部分。https://spark.apache.org/docs/latest/quick-start.html

您可以看一下以下用于Spark的Hello World示例,该示例将应用程序打包为已经提到的@ zachdb86。

火花你好世界

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM