Spark 上的 Hive 不返回聚合或连接查询的结果
Posted
技术标签:
【中文标题】Spark 上的 Hive 不返回聚合或连接查询的结果【英文标题】:Hive on Spark return no results on aggregation or join queries 【发布时间】:2019-06-10 13:10:30 【问题描述】:聚合或连接不会从外部表上的 Hive 查询返回任何结果。
我已设置 hive 以使用 Spark(独立)作为查询引擎而不是 MR。
我已经创建了一个外部表(来自 elastichsearch 索引)。
使用 SELECT 一切正常并返回数据:
SELECT * FROM table1 LIMIT 100
尝试使用简单的计数不返回数据:
SELECT count(*) FROM table1
我使用 JDBC (beeline) 在 Hive 上执行查询
从日志来看,选择查询似乎是直接在弹性上执行的(没有生成火花作业)。执行计数查询时,会生成一个 spark 作业并成功完成,但会返回任何结果。
【问题讨论】:
【参考方案1】:显然,您使用的联接正在过滤掉所有记录。检查您要加入的条件是否存在于两个表中。尝试将连接类型从内部更改为左侧,看看是否有任何结果。
如果您仍然无法管理,能否从您尝试加入的 2 个表中添加一个示例?
告诉我。
【讨论】:
我发现了问题。 Spark 在文件系统中写入查询结果并告诉配置单元在哪里读取它们。 Hive 和 spark 应该共享写入这些结果的位置(如 HDFS) 是的,这是您必须为两者设置的配置以上是关于Spark 上的 Hive 不返回聚合或连接查询的结果的主要内容,如果未能解决你的问题,请参考以下文章