首页 > 解决方案 > 扩展 Hive 分区 ORC 表中断查询

问题描述

我正在使用 Hive 3.0

我在 ORC 分区 Hive 内部表中添加了几列。例如

create table test (a int) partitioned by ( b string) stored as ORC;
insert into test values(1,’a’);
insert into test values(2,’b’);
select * from test;
| 测试.a | 测试.b |
|---------|----------|
| 1 | 一个 |
| 2 | 乙 |
alter table test add columns (c string);

一开始,我希望这些列中的值为 NULL。

select * from test;
| 测试.a | 测试.c | 测试.b |
|---------|---------|---------|
| 1 | 空 | 一个 |
| 2 | 空 | 乙 |

当我在新列上使用 where 子句执行查询时,系统会中断

select count(*) from test where c is null;

这会产生错误

Vertex did not succeed due to OWN_TASK_FAILURE, failedTasks:1 killedTasks:1, Vertex vertex_1579629597981_743514_1241_00 [Map 1] killed/failed due to:OWN_TASK_FAILURE]Vertex killed, vertexName=Reducer 2, vertexId=vertex_1579629597981_743514_1241_01, diagnostics=[Vertex received Kill while in RUNNING状态。,由于 OTHER_VERTEX_FAILURE,Vertex 未成功,failedTasks:0killedTasks:1,Vertex vertex_1579629597981_743514_1241_01 [Reducer 2] 由于:OTHER_VERTEX_FAILURE 而杀死/失败] DAG 由于 VERTEX_FAILURE 未成功。failedVertices:1 killVertices:1 (state=08S01,code=2)

我搜索了文档,但看起来我做得正确。

有什么建议吗?

标签: sqlhiveaddalterorc

解决方案


推荐阅读