hive删除表中部分数据

一、无分区表

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;


版权声明:本文为u011675334原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。