hive删除表中部分数据

时间:2025-02-17 07:21:28

一、无分区表

insert overwrite table table_name
select * from table_name where ...;

可以看出,删除的本质就是覆盖,选出符合条件的结果重新写表。

二、有分区表

1、删除某个分区

alter table table_name drop partition(dt='2020-09-02');

目的是将分区为 2020-09-02 的数据全部删掉,即删除整个分区。

2、删除某个分区中的一部分数据

insert overwrite table table_name partition(dt='2020-09-02') 
SELECT column1,column2,column3 from table_name
     where dt='2020-09-02' and column3 is not null;