TOP

Hive修改列位置(更改类型、移动位置)指令及应用场合
2018-12-05 01:16:26 】 浏览:955
Tags:Hive 修改 位置 更改 类型 移动 指令 应用 场合

本文介绍如何修改表的属性,在一张已经建好的表中修改列名,添加列,挪动列,更改列类型。

目标在hive中实现在指定位置添加列

背景:hive中添加新列时会默认在最后一列依次添加,无法同mysql一样可以指定位置。

解决方法:首先在hive中添加列(此时是默认在最后一列的);然后再通过移动位置的指令将新列移动到指定位置。


附:

mysql在指定位置添加列的指令

mysql> alter table t1 add column student varchar(20) not null after class;

如果想添加到第一列的话,可以用

mysql> alter table t1 add column student varchar(20) not null first;

hive添加列的指令

hive> alter table t1 add columns student varchar(20) not null;

hive修改列的指令

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]


这个命令可以允许改变列名、数据类型、注释、列位置或者它们的任意组合



举例:

表t1

id int
class varchar
num double


1)首先,添加列(此时是默认在最后一列的)

hive> alter table t1 add columns student varchar(20) not null;

改之后--表t1
id int
class varchar
num double
student varchar


2)然后再通过移动位置的指令将新列移动到class后面。


hive> ALTER TABLE t1 CHANGE column student student varchar(20) comment '学生姓名' AFTER class;


改之后—表t1
id int
class varchar
student varchar
num double


注意:由于hive文件并没有修改,只是相当于修改了字段名字而已,数据并没有相应的移动。

因此,此方法适用于已建表,后续会重新刷新数据的情况;或者空表。




Hive修改列位置(更改类型、移动位置)指令及应用场合 https://www.cppentry.com/bencandy.php?fid=117&id=194663

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇hive上删除列 下一篇hive获取今天、昨天、明天和前一..