美文网首页
Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性

Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性

作者: 香山上的麻雀 | 来源:发表于2020-02-27 15:40 被阅读0次

文章转载自https://blog.csdn.net/helloxiaozhe/article/details/80749094

Alter Table 语句

Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作

它是在Hive中用来修改的表。
语法
声明接受任意属性,我们希望在一个表中修改以下语法。

ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

(1)、重命名表
Rename To… 语句

ALTER TABLE table_name RENAME TO new_table_name;

上面这个命令可以重命名表,数据所在的位置改变,但分区名都没有改变。

下面是查询重命名表,把 employee 修改为 emp。

ALTER TABLE employee RENAME TO emp;

(2)、改变列名/类型/位置/注释

ALTER TABLE table_name CHANGE
[CLOUMN] col_old_name col_new_name column_type
[CONMMENT col_conmment]
[FIRST|AFTER column_name];

这个命令可以修改表的列名,数据类型,列注释和列所在的位置顺序,FIRST将列放在第一列,AFTER col_name将列放在col_name后面一列,

例子1:

ALTER TABLE test_table \
CHANGE col1 col2 STRING COMMENT 'The datatype of col2 is STRING' AFTER col3;

上面的语句将列名col1修改为col2,数据类型为STRING并添加注释,最后将这一列放在col3后面。
例子2:下表包含employee表的字段,它显示的字段要被更改。

下面查询重命名使用上述数据的列名和列数据类型:

ALTER TABLE employee CHANGE name ename String;
ALTER TABLE employee CHANGE salary salary Double;

(3)、增加/更新列

ADD COLUMNS允许用户在当前列的末尾,分区列之前添加新的列,REPLACE COLUMNS允许用户更新列,更新的过程是先删除当前的列,然后在加入新的列。注:只有在使用native的SerDE时才可以这么做。

ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [CONMMENT col_comment], ...);

添加列语句,下面的查询增加了一个列名dept在employee表。

hive> ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');

REPLACE语句

以下从employee表中查询删除的所有列,并使用emp替换列:

hive> ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);

相关文章

网友评论

      本文标题:Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性

      本文链接:https://www.haomeiwen.com/subject/noazchtx.html