我是靠谱客的博主 昏睡洋葱,这篇文章主要介绍【Hive】修改 table、column一、表二、列三、分区,现在分享给大家,希望可以做个参考。

目录

一、表

二、列

三、分区


一、表

1、重命名表重命名表的语句如下:

复制代码
1
ALTER TABLE table_name RENAME TO new_table_name

2、修改表属性:

复制代码
1
ALTER TABLE table_name SET TBLPROPERTIES (property_name = property_value, property_name = property_value,... )

3、修改表注释

复制代码
1
ALTER TABLE table_name SET TBLPROPERTIES('comment' = new_comment);

4、拷贝表

复制代码
1
2
CREATE TABLE app.table_new AS SELECT * FROM app.table_old

5、删除表

复制代码
1
2
drop table if exists table.table_name;

二、列

1、添加列

Add Columns 语法

复制代码
1
2
3
4
5
6
一次增加一个列(默认添加为最后一列) ALTER TABLE table_name ADD COLUMNS (new_col INT); 可以一次增加多个列 ALTER TABLE table_name ADD COLUMNS (c1 INT,c2 STRING); 添加一列并增加列字段注释 ALTER TABLE table_name ADD COLUMNS (new_col INT COMMENT 'a comment');

2、修改列

Change Column Name/Type/Position/Comment 语法

复制代码
1
2
3
4
5
6
7
8
9
10
11
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] --- Change Column Name/Type/Position/Comment 案例 CREATE TABLE test_change (a int, b int, c int); ALTER TABLE test_change CHANGE a a1 INT; --将 a 列的名字改为 a1. --将 a 列的名字改为 a1,a 列的数据类型改为 string,并将它放置在列 b 之后。新的表结构为: b int, a1 string, c int. ALTER TABLE test_change CHANGE a a1 STRING AFTER b; --将 b 列的名字修改为 b1, 并将它放在第一列。新表的结构为: b1 int, a string, c int. ALTER TABLE test_change CHANGE b b1 INT FIRST;

3、删除列

Replace Columns 语法

复制代码
1
2
3
4
5
6
原有Hive表test_change中有a,b,c,d,e这几个字段 将从test_change中删除“d”列: ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string,e string); 将d和e两列一起删除: ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string);

注意:如果列字段比较多,可以用show create table table_name; 显示建表语句,将字段一次性复制进来,删除哪些字段就直接去除即可.

三、分区

1、增加分区

复制代码
1
2
3
4
5
6
7
--Add Partitions 语法 ALTER TABLE table_name ADD partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ... partition_spec: : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...)

--Add Partitions 语法案例:用户可以用 ALTER TABLE ADD PARTITION 来向一个表中增加分区。当分区名是字符串时加引号。

复制代码
1
2
3
4
5
ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' PARTITION (dt='2008-08-09', country='us') location '/path/to/us/part080809';

2、修改分区

3、删除分区

复制代码
1
2
3
---DROP PARTITION 删除分区 ALTER TABLE table_name DROP partition_spec, partition_spec,...

删除某分区数据

复制代码
1
2
3
4
5
6
7
-- 删除dt = '2021-03-23'分区数据 SET mapred.output.compress = true; SET hive.exec.compress.output = true; SET mapred.job.priority = VERY_HIGH; USE app; ALTER TABLE table.table_name DROP partition(dt = '2021-03-23') ;

4、拷贝分区表

https://blog.csdn.net/qq_43193797/article/details/99957879?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7.control&dist_request_id=cf9fa99e-7862-4873-a61a-a70540b7f708&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7.control

复制代码
1
2
3
4
5
6
7
8
9
10
-- 拷贝同一结构 CREATE TABLE app.table_new LIKE app.table_old; -- 拷贝分区表中的数据 set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; insert overwrite table app.table_new partition(dt, dt2) select * from app.table_old;

5、查看分区结构

复制代码
1
show partitions app.table_new

参考: 

Hive列操作汇总(添加/更新/删除/虚拟列)

Hive 修改table、column

最后

以上就是昏睡洋葱最近收集整理的关于【Hive】修改 table、column一、表二、列三、分区的全部内容,更多相关【Hive】修改内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部