1、概述
hive 表删除部分数据不支持使用 Delete From table_name where …语句
hive表删除数据要分为不同的粒度:table、partition、partition内文章来源:https://www.toymoban.com/news/detail-608829.html
2、有 Partition 分区表
有分区字段的数据表,删除数据时要注意分两种情况:文章来源地址https://www.toymoban.com/news/detail-608829.html
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 --限制条件可以自行修改
到了这里,关于Hive--清除/删除Hive表数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!