apache配置单元:如何在表中的特定位置添加列

deyfvvtc  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(394)

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

mf98qq94

mf98qq941#

人们多久跑步一次 SELECT * ?? 通常,人们在select语句中列出每一列。只需将列添加到末尾,然后进行如下调整 SELECT last_col, first_col, second_col ... 或者,创建一个运行select语句的视图,该语句按所需的列顺序排列。
将表重命名为其他名称,并将视图命名为表,没有人会知道任何不同

eqoofvh9

eqoofvh92#

您需要重新创建表。如果表是外部的,并且数据已经包含新列,则发出 drop 以及 create 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 CASCADE;

参见此处的文档:更改列名/类型/位置/注解

相关问题