遇到“错误无法更改表。”在Hive中更改表列位置时

时间:2018-07-04 00:09:25

标签: hive hiveql

我有一个简单的表fiction_movie

hive>describe fiction_movie;
OK
title string
actors array<string>
genre string
rating int
4 rows selected (0.03 seconds)

表中的内容:

hive> select * from fiction_movie;
OK
avatar  ["zoe saldana","Sam worthington"]   science fiction  7
logan  ["hugh jackman","Patrick stewart"]   science fiction  8
2 rows selected (0.352 seconds)

我想做的是重新排列列的位置,并将标题放在流派之后:

#I tried
hive>alter table fiction_movie change column title title string after genre;

但这给了我以下错误:

  

错误:处理语句时出错:失败:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。无法更改表格。以下各列的类型与各自位置上的现有列不兼容:
  演员类型(状态= 08S01,代码= 1)

有人知道为什么吗?谢谢!

1 个答案:

答案 0 :(得分:1)

此代码在我的机器上运行正常。

gcp

或尝试设置此属性。 您可以通过以下方式强制配置单元允许您对其进行更改:

hive> create table fiction_movie(
    > title string,
    > actors array<string>,
    > genre string,
    > rating int);
OK
Time taken: 0.155 seconds
hive> alter table fiction_movie change column title title string after genre;
OK
Time taken: 0.4 seconds
hive> describe  fiction_movie;
OK
actors                  array<string>
genre                   string
title                   string
rating                  int
Time taken: 0.37 seconds, Fetched: 4 row(s)

而不是改变您的餐桌。