我一直在运行一些测试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上执行我的代码并在完成时弹出到shell中。
既然我正在尝试在群集上运行它,我想我需要使用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")
答案 0 :(得分:5)
有两种快速而肮脏的方法:
只需使用带有firstvals = 2*y[0] - y[half_window:0:-1]
lastvals = 2*y[-1] - y[-2:-half_window-2:-1]
标志的火花外壳:
-i
一个。编译:
$SPARK_HOME/bin/spark-shell -i neo4jsparkCluster.scala
湾将其提交到您的群集:
scalac -classpath <location of spark jars on your machine> neo4jsparkCluster
答案 1 :(得分:4)
您需要使用sbt打包scala应用程序,并在您的build.sbt文件中包含Spark作为依赖项。
,请参阅快速入门指南的自包含应用程序部分答案 2 :(得分:0)
您可以查看以下Spark的Hello World示例,该示例将您的应用程序打包为已经提到的@ zachdb86。