使用 order by 时出现 Hive 错误
Posted
技术标签:
【中文标题】使用 order by 时出现 Hive 错误【英文标题】:Hive error while using order by 【发布时间】:2017-06-18 16:34:58 【问题描述】:在虚拟机上的 Hive 中,我创建了一个名为 mytable 的表并插入了一些记录。
当我执行这个查询时:
select * from mytable order by id
我收到一个错误:
错误:java.lang.RuntimeException:org.apache.hadoop.hive.ql.metadata.HiveException:处理行时出现 Hive 运行时错误 (tag=0)
架构、查询和数据的附加信息如下,
hive> describe mytable;
OK
id int
name string
addr string
Time taken: 0.281 seconds
hive> select * from mytable;
OK
2 tanishq akola
1 ram kk
Time taken: 0.271 seconds
谁能帮忙?
【问题讨论】:
添加表定义和数据样本 mytable(id int,name string,addr string) Data is- 1 ram kk ,2 Tanishq kk2 only 2 records. 1) 在您的帖子中添加任何其他信息,而不是作为评论 2) 添加show create table mytable
的输出
【参考方案1】:
解决此问题的最简单方法是将 hive.execution.engine 设置为 mr,这将使查询工作但运行速度较慢。
如果您还没有这样做,可以尝试的另一件事是对所涉及的表进行统计数据收集。你可以这样做:
分析表 store_sales 分区 (...) 计算统计信息; 分析表 store_sales 分区 (...) 计算列的统计信息;
如果没有,则启用 hive.stats.fetch.column.stats。然后使用 tez 执行引擎运行查询。
【讨论】:
这与元数据异常有什么关系?! 我只是在使用 claudera 的非商业 VM 进行学习,我认为它的执行引擎只有 MR。以上是关于使用 order by 时出现 Hive 错误的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL 语句中使用 Order by 时出现“参数 xxx 没有默认值”错误
添加ORDER BY时出现“SQL0802 - 数据映射错误的数据转换”异常
在 Toad for Sql Server 2016 中使用带有 Union All 的 Order By 子句时出现奇怪的语法错误
执行SQL时出现: ORDER BY clause is not in GROUP BY clause and contains nonaggregated c