HIVE 增加修改删除字段
非分区表
增加字段
增加字段可以使我们在所有字段之后和分区字段之间增加一个字段
使用格式
ALTER TABLE table_name
ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
[CASCADE|RESTRICT] -- (Note: Hive 1.1.0 and later)
使用示例,在 user_info
中增加 user_addr
字段,现有的表数据如下:
ALTER TABLE user_info ADD COLUMNS (user_addr string COMMENT '用户地址');
当我增加新的字段 user_addr
后,新增字段前的数据该列显示为 NULL
,那么如果我们新增一条数据呢?
INSERT INTO TABLE user_info
SELECT '003' as user_id, 'jack' as user_name, '34' as age, '广东深圳' as user_addr
;
结论:非分区表新增字段后,原有数据的该字段会显示为 NULL
,新增的数据会按新增的数据进行展示
还没结束,我们向 user_info
再新增 user_appr
字段的时候再加下这两个 CASCADE、RESTRICT
属性,看看会发生什么
ALTER TABLE user_info ADD COLUMNS (user_appr string COMMENT '用户偏好') CASCADE;
添加 CASCADE
后执行失败,说明非分区表再添加字段时不能加CASCADE
ALTER TABLE user_info ADD COLUMNS (user_appr string COMMENT '用户偏好') RESTRICT;
添加RESTRICT
后执行成功,该语法具体含义后面再述
修改字段(修改字段名称、类型、注释、顺序)
修改前
修改字段 user_addr
的字段名称为 user_address
ALTER TABLE user_info CHANGE user_addr user_address string;