千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Hive表增加字段用法介绍

Hive表增加字段用法介绍

来源:千锋教育
发布人:xqq
时间: 2023-11-23 00:06:48 1700669208

一、Hive表增加字段语句

在Hive中,可以通过Alter Table语句来为已经创建的表添加新的字段。Alter Table语句可以给表增加、修改、删除列,还可以修改列的数据类型、顺序和默认值等信息。下面是Hive表增加字段的语法:


ALTER TABLE table_name 
ADD COLUMNS (col_name data_type [COMMENT col_comment], ... )

其中,table_name表示要增加字段的表名;col_name表示要增加的新列的名称;data_type表示新列的数据类型,[COMMENT col_comment]可以用于指定列的注释。

例如,我们现在有一张student表,要向这张表中增加一个名为sex的列,数据类型为string:


ALTER TABLE student 
ADD COLUMNS (sex string);

二、Hive表增加一个字段

如果要在Hive表中新增一个字段,可以使用以下的语法格式:


ALTER TABLE table_name ADD COLUMN col_name data_type [COMMENT col_comment] [AFTER column_name];

其中,table_name为表名,col_name为要增加的字段名,data_type为字段的数据类型,COMMENT col_comment为字段的注释信息,AFTER column_name为新字段要放在那个字段后面的位置。如果没有指定AFTER column_name,则新字段会放在表结构的最后面。

例如,给student表增加一个name_en字段,数据类型为String,位置放在sex字段后面,语句如下:


ALTER TABLE student 
ADD COLUMN name_en string COMMENT '英文名' AFTER sex;

三、Hive表增加字段的同时赋值

有时候在给Hive表增加字段的同时,需要为新的字段指定默认值。Hive可以通过以下语法来为新添加的字段赋值:


ALTER TABLE table_name ADD column_name column_type DEFAULT value;

其中,table_name为表名,column_name为新增的列的列名,column_type为列的类型,默认值的value。

例如,给employee表新添加一个salary字段,并给所有记录赋默认值10000元,语句如下:


ALTER TABLE employee ADD salary int DEFAULT 10000;

四、Hive分区表增加字段

对于Hive分区表的操作和普通表一样,唯一不同的就是,在给分区表增加字段时,需要在Alter Table语句中指定分区的位置,具体语法如下:


ALTER TABLE table_name PARTITION (partition_col = partition_val) 
ADD COLUMNS (col_name data_type [COMMENT col_comment], ... )

其中,partition_col表示要增加字段的分区列,partition_val为分区列的值,table_name为表名,col_name表示要增加的新列的名称;data_type表示新列的数据类型,[COMMENT col_comment]可以用于指定列的注释。

例如,对student分区表,在分区field=‘eng’的基础上增加一个名为grade的列,语句如下:


ALTER TABLE student 
PARTITION (field = 'eng') 
ADD COLUMNS (grade int);

五、Hive表添加字段

如果要在Hive表中添加一列,可以使用Add Columns来实现,其语法如下:


ALTER TABLE table_name ADD COLUMNS (column_name data_type [COMMENT col_comment], ...);

其中,table_name为要添加列的表名,column_name为要添加的列名,data_type为要添加的列的数据类型,COMMENT col_comment为要添加的列的备注信息。

例如,在student表中增加一个列blog,其数据类型为String,备注为“博客地址”,语句如下:


ALTER TABLE student ADD COLUMNS (blog string COMMENT '博客地址');

六、Hive外部表增加字段

对于Hive外部表的操作和普通表一样,唯一不同的就是,在给外部表增加字段时,需要指定EXTERNAL关键字,具体语法如下:


ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment], ... )
 [AS FILEFORMAT file_format] 
 [LOCATION hdfs_path]

其中,table_name为表名,col_name表示要增加的新列的名称;data_type表示新列的数据类型,[COMMENT col_comment]可以用于指定列的注释;AS FILEFORMAT用于指定外部表的格式;LOCATION hdfs_path用于指定外部表的存储位置。

例如,给名为log的外部表添加一个msg字段,类型为String,语句如下:


ALTER TABLE log ADD COLUMNS (msg string) LOCATION '/user/hive/log';

七、Hive修改字段长度

如果需要修改Hive表中某列字段的长度,可以使用Modify Column语句来实现。具体语法如下:


ALTER TABLE table_name CHANGE col_name col_name data_type (length) [COMMENT col_comment] [FIRST | AFTER column_name]; 

其中,table_name为表名,col_name为要修改的列名,data_type为要修改列的数据类型,(length)为要修改列的长度,COMMENT col_comment为要修改的列的备注信息,FIRST为指定字段修改后,应该排在第一个,AFTER column_name指定该字段排在某个字段后面。

例如,我们需要将student表中已有的name字段长度从20改为30,语句如下:


ALTER TABLE student CHANGE name name VARCHAR(30);

八、Hive修改表字段名称

如果需要修改Hive表中某一列的名称,可以使用Change Column Name语句来实现。具体语法如下:


ALTER TABLE table_name CHANGE old_col_name new_col_name column_type [COMMENT col_comment] [FIRST | AFTER column_name]; 

其中,table_name为表名,old_col_name为原来的列名,new_col_name为修改后的列名,column_type为列的数据类型,COMMENT col_comment为列的注释信息,FIRST为指定字段修改后,应该排在第一个,AFTER column_name指定该字段排在某个字段后面。

例如,我们需要将student表中已有的name字段名称从name改为name_cn,语句如下:


ALTER TABLE student CHANGE name name_cn string;

总结

在Hive中,对于表的结构,可以通过Alter Table语句来进行修改。在增加字段时,可以修改普通表的结构,也可以修改分区表的结构。同时还可以指定默认值和修改字段的长度和名称等操作,方便灵活地满足不同场景下的需求。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT