0


Hive--清除/删除Hive表数据

1、概述

hive 表删除部分数据不支持使用 Delete From table_name where …语句

hive表删除数据要分为不同的粒度:table、partition、partition内

2、有 Partition 分区表

有分区字段的数据表,删除数据时要注意分两种情况:

1、根据分区删除数据,可以删除满足条件的分区,具体代码格式如下:

--删除一个分区的数据
alter table table_name drop partition(partiton_name='value')--删除多个分区的数据
alter table table_name drop partition(partiton_name<'value')
alter table table_name drop partition(partiton_name<='value')
alter table table_name drop partition(partiton_name>'value')
alter table table_name drop partition(partiton_name>='value')

2、删除分区内部的部分数据,这时使用重写方式对满足条件的分区进行 overwrite 操作,并通过 where 来限定需要的信息,未过滤的的信息将被删除,具体代码格式如下:

insert overwrite table table_name partition(partition_name='value') 
select column1,column2,column2 FROM table_name
where partition_name='value' and column2 is not null

3、没有 Partition 分区表

1、直接清空数据,再插入需要的数据,具体代码格式如下:

truncate table database.tablename

2、通过 overwrite 对所有数据重写,具体代码格式如下:

insert overwrite table table_name 
select * from table_name WHERE column is not null--限制条件可以自行修改

本文转载自: https://blog.csdn.net/weixin_42039228/article/details/131091443
版权归原作者 sunnyday0426 所有, 如有侵权,请联系我们删除。

“Hive--清除/删除Hive表数据”的评论:

还没有评论