背景:
1、hive表删除数据不能使用DELETE FROM table_name 中SQL语句
2、hive表删除数据要分为不同的粒度:table、partition、partition内
一、有partition表
1. 删除具体partition
alter table table_name drop partition(partiton_name='value'))
2. 删除partition内的部分信息(INSERT OVERWRITE TABLE)
INSERT OVERWRITE TABLE table_name PARTITION(dt='v3')
SELECT column1,column2 FROM table_name
WHERE dt='v3' AND category is not null;
重新把对应的partition信息写一遍,通过WHERE 来限定需要留下的信息,没有留下的信息就被删除了。
二、无partiton表
INSERT OVERWRITE TABLE table_name SELECT * FROM table_name WHERE age is not null;