Hive在使用中不支持update
和delete
操作,那么如果想删除部分条件的记录需要怎么操作?本文记录下解决方法。
思路:使用select+where选出想要保留的数据,使用insert overwrite向原表覆盖插入数据.
sql
insert overwrite table dbname.tableName
select * from dbname.tableName
where <condition>
-- 实例:Hive表删除'2023-11-23'更新的数据
insert overwrite table dbname.tableName
select * from dbname.tableName
where up_date<>'2023-11-23'
-- 分区表下操作
insert overwrite table dbname.tableName partition (pmf='2023-11')
select * from dbname.tableName
where pmf='2023-11'
and up_date<>'2023-11-23'