无法通过 shell 脚本运行 Spark sql



我无法通过 shell 脚本查询 Spark 中的表。但是如果我通过命令行运行,我能够得到结果。当我将这些命令插入 shell 并尝试运行时出现问题。

创建了一个 shell 脚本:

vi test.sh

插入到火花外壳命令下方

火花壳

val results =sqlContext.sql("SELECT * from table_name ")
results.show()

它正在进入火花外壳,但没有运行以下两个命令

val results =sqlContext.sql("SELECT * from table_name ")

results.show()

您可以使用 Except 在 bash 脚本中获取火花外壳。

或者使用 .scala 创建一个文件,并在那里复制所有 Spark 命令。

val results =sqlContext.sql("SELECT * from table_name ")
results.show()
System.exit(0)

使用'spark-shell -i script_name.scala'在bash中运行脚本或直接在Linux终端上运行脚本。

系统退出(0(-----摆脱火花壳

我假设您可以使用hive查询数据。你需要做配置,以便Spark sql可以与HDFS和Hive一起工作。执行以下步骤以在 Spark 和 Hive 之间建立连接。

在位置 $SPARK_HOME/conf/hive-site.xml 创建文件 hive-site.xml。在此文件中执行以下条目(将值更改为指向 Hive 安装的元存储服务器(:

<configuration>
<property>
<name>hive.metastore.uris</name>
<!--Make sure that <value> points to the Hive Metastore URI in your cluster -->
<value>thrift://sandbox.hortonworks.com:9083</value>
<description>URI for client to contact metastore server</description>
</property>
</configuration>

以下链接提供了有关此的更多详细信息:

如何从 Spark 连接到远程 Hive 服务器

https://acadgild.com/blog/how-to-access-hive-tables-to-spark-sql

您可以编写为 scala 文件并运行 scala 文件,而不是作为 shell 脚本编写。

文件.scala

val results =sqlContext.sql("SELECT * from table_name ")
results.show()

Spark-shell -i file.scala

相关内容

  • 没有找到相关文章

最新更新