我想将新列添加到 hive 表中的特定位置。当我添加新列时,它会转到最后一个位置。
人们跑步的频率如何
SELECT *
?通常,人们会列出 select 语句中的每一列。只需将列添加到末尾,然后像 SELECT last_col, first_col, second_col ...
那样进行调整
或者,创建一个 VIEW,运行具有所需列排序的 select 语句。
将表重命名为其他名称,并将视图命名为表,没有人会知道有什么不同
您需要重新创建表。如果表是外部表并且数据已包含新列,则发出
drop
和 create table
语句。一般解决方案是:
1. create <new_table>...;
2. insert overwrite <new_table> select from <old_table>;
3. drop <old_table>;
4. alter table <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 CASCADE;
请参阅此处的文档:更改列名称/类型/位置/注释