2016-01-13 363 views
0

该问题类似于Passing command line arguments to Spark-shell。但是,我没有得到我想要的答案,所以我在下面重新解释我的问题。如何将命令行参数传递给spark-shell scala脚本?

我想用下面的命令运行火花外壳Scala的脚本:

spark-shell -i file.scale 

它运作良好,没有任何程序参数。但是,如果我想为file.scale添加一些命令行参数。引用到它在斯卡拉外壳http://alvinalexander.com/scala/scala-shell-script-command-line-arguments-args的路上,我试着用以下的方法:

spark-shell -i file.scale args1 args2 

,我试图取回的参数,但未能像如下

var input = args(0) 
var output = args(1) 

错误消息显示参数args不识别。

任何人都知道如何做到这一点?

+0

http://stackoverflow.com/questions/29928999/passing-command-line-arguments-to-spark-shell的副本。此答案的工作原理:http://stackoverflow.com/a/30948834/1442961 –

+2

[将命令行参数传递给Spark-shell]可能重复(http://stackoverflow.com/questions/29928999/passing-command-line-参数 - 火花壳) – mrsrinivas

回答

1

Scala和Spark-shell之间有区别。 Spark-shell是scala的包装器并以分布式模式运行,因此参数传递不像scala一样工作。

要运行的Scala程序,这里有你需要遵循

  • 开发斯卡拉应用
  • 生成jar文件
  • 运行与参数一起火花提交命令这需要JAR文件,类名的步骤

由于应用程序必须在Spark中以分布式模式运行,因此您将无法使用spark-shell将参数传递给scala脚本。

相关问题