表属性操作
修改表名
create table if not exists testchange(name string,value string);
alter table testchange rename to a2;
增加列(默认添加到最后)
alter table tablename add columns(c1 string,c2 long);
alter table a2 add columns(id int,type boolean);
修改列名(boolean修改不了,还是要遵循字段类型转换规则)
alter table table_name change column c1,c2 int comment 'xxx' after xx;
alter table a2 change column id ids int[first/after xx];
修改表属性
修改注释
alter table a2 set tblproperties('comment' = 'xxxxx');
修改分隔符
alter table a2 set serdeproperties('field.delim'=',');
alter table a2 set serdeproperties('collection.items'='|');
alter table a2 set serdeproerties('map.keys'=':');
修改分区表的分隔符在表后面添加分区就好咯(对新的分区没影响,旧的分区需要加上关键字partition才有效)
alter table a2 partition(dt='20180816') set serdeproperties('field.delim'=',');
表属性操作
修改location
alter table a4 set location 'path';(0.13中path是hdfs的绝对路径,2.1.1可以不用写绝对路径)
内部表转外部表/外部表转内部表
alter table a4 set tblproperties('EXTERNAL'='FALSE');(外部转内部)
alter table a4 set tblproperties('EXTERNAL'='TRUE');(内部转外部)