无法在 Spark SQL 中查看 Hive 记录,但可以在 Hive CLI 上查看它们
Posted
技术标签:
【中文标题】无法在 Spark SQL 中查看 Hive 记录,但可以在 Hive CLI 上查看它们【英文标题】:Unable to view Hive records in Spark SQL, but can view them on Hive CLI 【发布时间】:2018-01-11 11:52:01 【问题描述】:我。
Hive CLI 显示 2 条记录,使用 hive 上下文的相同查询显示 0
在蜂巢中
hive> select ord_id from order;
OK
157434411
157435932
Time taken: 0.389 seconds, Fetched: 2 row(s)
在 Spark SQL 中
hiveCtx.sql("select ord_id from order").show()
+------------+
|ord_id |
+------------+
+------------+
我已尝试刷新表并重新启动 Hive,但问题仍然存在。
我已经检查了unable-to-view-data-of-hive-tables-after-update-in-spark 的解决方案,但似乎没有任何效果。
如有任何建议,我们将不胜感激。
编辑:
更正了上面列的名称。 我还提供了 desc 的输出:
hive> desc rpt_derived.rpttradeleg;
OK
ord_id string
ord_date timestamp
cust_buy_sell string
ord_cust_entity string
ord_deal_year int
ord_deal_month int
ord_deal_day int
# Partition Information
# col_name data_type comment
ord_year int
ord_month int
ord_day int
Time taken: 2.036 seconds, Fetched: 16 row(s)
hive>
来自 Spark SQL:
scala> hiveContext.sql("desc rpt_derived.rpttradeleg").show()
+--------------------+---------+-------+
| col_name|data_type|comment|
+--------------------+---------+-------+
| ord_id| string| |
| ord_date|timestamp| |
| cust_buy_sell| string| |
| ord_cust_entity| string| |
| ord_deal_year| int| |
| ord_deal_month| int| |
| ord_deal_day| int| |
+--------------------+---------+-------+
Spark版本:spark-1.5.0+cdh5.5.2+114
Hive 版本:hive-1.1.0+cdh5.5.2+377
【问题讨论】:
【参考方案1】:To connect to hive metastore you need to copy the hive-site.xml file into
spark/conf directory.After that spark will be able to connect to hive
metastore.
so run the following command after log in as root user
cp /usr/lib/hive/conf/hive-site.xml /usr/lib/spark/conf/
or use hiveCtx.sql("select *from databasename.tablename").show()
I hope, it will work for you.
【讨论】:
嗨 Mohit,我已经在 conf 目录中有 hive-site.xml 作为符号链接。以上是关于无法在 Spark SQL 中查看 Hive 记录,但可以在 Hive CLI 上查看它们的主要内容,如果未能解决你的问题,请参考以下文章
无法在 spark 中使用 hive 支持创建 sql 上下文
在 HDP 的 spark2 sql 中无法访问 Hive 表