如何将命令行参数传递给spark-shell scala脚本?

时间:2016-01-13 02:39:35

标签: scala shell apache-spark

问题类似于Passing command line arguments to Spark-shell。但是,我没有得到我想要的答案,所以我在下面重述我的问题。

我想使用以下命令在spark-shell中运行scala脚本:

spark-shell -i file.scale

没有任何程序参数,它运行良好。但是,如果我想为file.scale添加一些命令行参数。引用它在scala shell 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无法识别。

任何人都知道该怎么做?

1 个答案:

答案 0 :(得分:3)

Scala和Spark-shell之间存在差异。 Spark-shell是scala的包装器并以分布式模式运行,因此参数传递与scala的工作方式不同。

要运行scala应用程序,请执行以下步骤

  • 开发Scala应用程序
  • 构建jar文件
  • 运行spark-submit命令,该命令包含jar文件,类名和参数

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