在bash脚本中传递scala命令

时间:2016-06-29 10:55:54

标签: bash scala shell

我目前正在研究Apache spark。我想看看系统在文本文件上执行wordcount并将其存储在文件中所花费的时间。我需要使用bash脚本自动执行命令。我试着运行以下脚本: -

start-all.sh
    (time spark-shell 
     val inputfile = sc.textFile("/home/pi/Desktop/dataset/books_50.txt")
     val counts = inputfile.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_);
     counts.toDebugString
     counts.cache()
     counts.saveAsTextFile("output")
     exit()
     ) 2> /home/pi/Desktop/spark_output/test.txt
stop-all.sh

它显示以下错误: -

./wordcount_spark.sh: line 4: syntax error near unexpected token `('
./wordcount_spark.sh: line 4: ` val inputfile = sc.textFile("/home/pi/Desktop/dataset/books_50.txt")'

我尝试将EOF添加到代码中,我收到以下错误: -

./wordcount_spark.sh: line 12: warning: here-document at line 3 delimited by end-of-file (wanted `EOF')
./wordcount_spark.sh: line 13: syntax error: unexpected end of file

我不了解如何通过bash脚本传递scala命令

1 个答案:

答案 0 :(得分:0)

Spark-shell是一个交互式工具,用户可以通过一个接一个地输入一个命令来交互使用,因此它不适合您的需求。

您应该查看Spark的快速入门指南中的Self-Contained Applications部分,该部分指导您如何编写和构建简单的Scala应用程序,并使用 {{1}执行它} 即可。这应该更符合你的要求。