一、修改字段
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 允許用戶在當前列的末尾增加新的列,但是在分區(qū)列之前。
2、REPLACE COLUMNS 刪除以后的列,加入新的列。
只有在使用 native 的 SerD(e DynamicSerDe
or MetadataTypeColumnsetSerDe)的時候才可以這么做。