hive中怎么删除表中的部分数据

2025-05-06 06:42:13
推荐回答(5个)
回答1:

工具:(1)HIVE;

(2)电脑;

(3)Xshell;

采用hdfs命令进行删除表中的部分数据:

1、先使用hdfs查看该表实际分区以及数据目录位置

hdfs dfs -ls /user/hive/warehouse/tbdata.db/表名小写/;

2、例如:使用hdfs命令删除该分区20161124目录

hdfs dfs -rm -r -f   /user/hive/warehouse/tbdata.db/表名小写/etl_dt=20161124;

3、最后查看是否有分区目录;

4、最查看进hive命令行查看此表是否还有数据。

回答2:

Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中。

回答3:

在我实际的开发经验中,可以这样做。
1、如果hive表在hdfs上有多个part,可以删除部分part。
2、如果hive表有多个分区,可以删除分区文件夹。
3、可以根据where条件删除符合条件的。
4、骚操作:
drop table if exists tmp_srcTable;
create table tmp_srcTable as SELECT * from srcTable limit 120000;
insert overwrite table srcTable select * from tmp_srcTable;
drop table tmp_srcTable;

回答4:

insert overwrite table t_table1 select * from t_table1 where XXXX;

其中xxx是你需要保留的数据的查询条件。

如果清空表,如下:
insert overwrite table t_table1 select * from t_table1 where 1=0;

回答5:

insert overwrite table t_table1 select * from t_table1 where XXXX; 其中xxx是你需要保留的数据的查询条件。 如果清空表,如下: insert overwrite table t_table1 select * from t_table1 where 1=0;