使用 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 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 hive 中执行 group by 时出现错误?

在 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

运行 Hive Query 时出现 Mysql 错误