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

问题描述 投票:0回答:2

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

hadoop hive hiveql hiveddl
2个回答
3
投票

人们跑步的频率如何

SELECT *
?通常,人们会列出 select 语句中的每一列。只需将列添加到末尾,然后像
SELECT last_col, first_col, second_col ...

那样进行调整

或者,创建一个 VIEW,运行具有所需列排序的 select 语句。

将表重命名为其他名称,并将视图命名为表,没有人会知道有什么不同


3
投票

您需要重新创建表。如果表是外部表并且数据已包含新列,则发出

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;

请参阅此处的文档:更改列名称/类型/位置/注释

© www.soinside.com 2019 - 2024. All rights reserved.