2016-01-13 361 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腳本。

相關問題