hive分区表删除部分数据

1、hive表删除数据不能使用DELETE FROM table_name 的SQL语句

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

一、有partition表

  1. 删除具体partition

alter table table_name drop partition(partiton_name=‘value’))
2. 删除partition内的部分信息(INSERT OVERWRITE TABLE)
(这里也可以将数据复制到其他表再筛选导入)

INSERT OVERWRITE TABLE table_name PARTITION(ds=‘2019-09-05’)
SELECT column1,column2 FROM alpha_sales_staff_info
WHERE ds=‘2019-09-05’ AND dt=‘2019-09-05’;
注:如果这里写select*from便会报错,分区ds虽然显示但它不属于表分区后可插的数据
重新把对应的partition信息写一遍,通过WHERE 来限定需要留下的信息,没有留下的信息就被删除了。

二、无partiton表

INSERT OVERWRITE TABLE dpc_test SELECT * FROM tbl_test WHERE age is not null;

发布了10 篇原创文章 · 获赞 1 · 访问量 1692

猜你喜欢

转载自blog.csdn.net/Carl_wang3333333/article/details/100556735