一、修改字段
Change Column Name/Type/Position/Comment
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type
[COMMENT col_comment]
[FIRST|AFTER column_name]
这个命令可以允许用户修改一个列的名称、数据类型、注释或者位置。
CREATE TABLE test_change (a int, b int, c int);
1、修改字段名
将 a 列的名字改为 a1;
ALTER TABLE test_change CHANGE a a1 INT;
2、修改字段数据类型&调整字段顺序
ALTER TABLE test_change CHANGE a a1 STRING AFTER b;
将 a 列的名字改为 a1,a 列的数据类型改为 string,并将它放置在列 b 之后。
新的表结构为: b int, a1 string, c int;
注意:对列的改变只会修改 Hive 的元数据,而不会改变实际数据。用户应该确定保证元数据定 义和实际数据结构的一致性。
二、新增/删除字段
Add/Replace Columns
ALTER TABLE table_name ADD|REPLACE
COLUMNS (col_name data_type [COMMENT col_comment], ...)
1、ADD COLUMNS 允许用户在当前列的末尾增加新的列,但是在分区列之前。
2、REPLACE COLUMNS 删除以后的列,加入新的列。
只有在使用 native 的 SerD(e DynamicSerDe
or MetadataTypeColumnsetSerDe)的时候才可以这么做。