Shell脚本-退出Spark-Shell会话

时间:2018-10-02 03:11:15

标签: bash shell apache-spark apache-spark-sql sh

我正在尝试编写将执行以下操作的Shell脚本: 1.启动火花壳 2.运行SQL查询 3.退出火花会话 4.执行bash脚本的其余部分 但是,在执行后两个部分时遇到问题。该脚本不会退出spark会话,并且最后一行中的echo语句会在spark会话中执行,并显示错误。

这是我的代码:

#!/bin/bash
   export SPARK_MAJOR_VERSION=2
   spark-shell <<- 'EOF'
   spark.sql("SELECT distinct year, months FROM calendar").show(100, false)
   :quit
   EOF 
echo "Testing: Inline session has ended"

这是我得到的输出:

scala>            spark.sql("SELECT distinct year, months FROM calendar").show(100, false)
+----+------+
|year|months|
+----+------+
|2017|3     |
|2017|8     |
|2017|10    |
|2018|1     |
|2018|3     |
|2017|7     |
|2018|5     |
|2017|12    |
|2017|9     |
|2017|4     |
|2018|7     |
|2018|6     |
|2017|2     |
|2017|11    |
|2017|5     |
|2018|2     |
|2017|6     |
|2017|1     |
|2018|4     |
+----+------+


scala>    :quit
<console>:1: error: illegal start of definition
   :quit
   ^

scala>    EOF
<console>:24: error: not found: value EOF
          EOF
          ^

scala>

scala>

scala> echo "Testing: Inline session has ended"
<console>:1: error: ';' expected but string literal found.
echo "Testing: Inline session has ended"
     ^

scala> :quit

如您所见,它永远不会退出spark会话。谁能帮我解决这个问题?我真的很感激。提前谢谢了 :)。

0 个答案:

没有答案