bash - Shell 脚本 - 退出 spark-shell 会话
问题描述
我正在尝试编写一个 shell 脚本,它将执行以下操作: 1. 启动 spark shell 2. 运行 SQL 查询 3. 退出 spark 会话 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 会话。谁能帮我解决这个问题?我真的很感激。提前谢谢了 :)。
解决方案
推荐阅读
- java - YAMLFactory 类型不可分配给 JsonFactory
- php - Laravel Eloquent 多对多,增量依赖
- css - 如何响应地旋转矩形的背景?
- forms - Vue中如何存储多个children的值并在父组件中执行一个函数
- android - 无法在 TabLayout 中将选定的选项卡居中
- flutter - 在颤动中换行
- c++ - do while循环和getline的问题-c ++
- python - 当绑定 C++ 和 Python 时,SWIG 在带有 MinGW-w64 的 Windows 上不起作用:导入时 DLL 加载失败:找不到指定的模块
- amazon-cloudformation - 用户无权在 Amazon ECS Fargate 上执行 RunTask(计划任务)
- c# - 缺少从 x 到 y 的地图。使用 CreateMap 创建