无法通过 shell 脚本 运行 激发 sql

Unable to run spark sql through shell script

我无法通过 shell 脚本在 spark 中查询 table。但是如果我 运行ning 通过命令行,我就能得到结果。当我在 shell 中插入这些命令并尝试 运行.

时出现问题

创建了一个 shell 脚本:

vi test.sh

在 spark shell 命令下方插入

火花-shell

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

results.show()

它正在进入 spark shell 但不是 运行 宁以下两个命令

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

results.show()

我假设您能够使用配置单元查询数据。您需要进行配置,以便 spark sql 可以与 HDFS 和 hive 一起使用。执行以下步骤在 spark 和 hive 之间建立连接。

在位置 $SPARK_HOME/conf/hive-site.xml 创建文件 hive-site.xml。在此文件中创建以下条目(将值更改为指向您的配置单元安装的 Metastore 服务器):

<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>

以下链接对此提供了更多详细信息:

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

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

file.scala

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

results.show()

spark-shell -i file.scala

您可以使用 Except 让 spark-shell 在 bash 脚本中工作。

或者使用 .scala 创建一个文件,然后将所有 spark 命令复制到那里。

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

results.show()

System.exit(0)

使用'spark-shell -i script_name.scala'到运行你在bash或直接在linux终端上的脚本。

System.exit(0)----- 从 spark-shell

中走出来