如何通过 bash 运行 spark 命令序列

如何通过 bash 运行 spark 命令序列

我想使用shell脚本进入spark-shell,然后执行以下命令

cat abc.sh

spark-shell

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val df = sqlcontext.read.json("/file/path")

我能够进入spark-shell scala,但接下来的两个命令没有运行

或者请让我知道如何使用 shell 脚本自动运行 scala 中的 Spark 命令序列

答案1

您无法启动子 shell 并仅以您尝试的方式列出命令。大概 shell 正在等待您的输入。

一般来说,你有两条路可以走。您要么需要提供spark-shell一个包含您希望其运行的命令的文件(如果它支持),要么使用输入重定向。这个答案通过heredoc解决了后一个选项。

按如下方式修改现有脚本可能会成功。

spark-shell << EOF
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlcontext.read.json("/file/path")
EOF

相关内容