Apache Hive:如何在表中的特定位置添加列

时间:2017-12-15 05:58:00

标签: hadoop hive hiveql

我想在hive表中的特定位置添加一个新列。当我添加新列时,它会转到最后一个位置。

由于

2 个答案:

答案 0 :(得分:2)

只需将列添加到结尾

即可

创建一个运行带有所需列排序的select语句的VIEW。

将表重命名为其他内容,并将视图命名为表,没有人会知道任何不同的

答案 1 :(得分:1)

您需要重新创建表格。如果该表是外部的,并且数据已包含新列,则发出dropcreate table语句。一般解决方案是:

1. create new_table...;
2. insert overwrite new_table select from old_table;
3. drop old_table;
4. alter new_table rename to old_table; 

此外,如果数据文件已在某个位置包含新列,则可以

1. Alter table add column

使用此示例更改列位置:

2. ALTER TABLE test_change CHANGE old_name new_name STRING AFTER other_col;

请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ChangeColumnName/Type/Position/Comment