hive删除表内重复数据
问:hive中怎么删除表中的部分数据
- 答:工具:(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命令行查看此表是否还有数据。 - 答:Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中。
- 答:在我实际的开发经验中,可以这样做。
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; - 答:insert overwrite table t_table1 select * from t_table1 where XXXX;
其中xxx是你需要保留的数据的查询条件。
如果清空表,如下:
insert overwrite table t_table1 select * from t_table1 where 1=0; - 答:insert overwrite table t_table1 select * from t_table1 where XXXX; 其中xxx是你需要保留的数据的查询条件。 如果清空表,如下: insert overwrite table t_table1 select * from t_table1 where 1=0;
问:Hive删除表中数据
- 答:问题描述:
当我们想要删除Hive表中部分符合条件的数据时:
发现Hive表删除数据不能使用DELETE FROM table_name 中SQL语句
drop table 表名;
如果要永久性删除,不准备再恢复:
drop table 表名 purge;
推荐博客: 让Hive支持行级insert、update、delete
参考博客:
问:Hive SQL 表中去重复
- 答:抱歉,来晚了。SELECT user_id, shop_id FROM goods GROUP BY user_id, shop_id;
本文来源: https://www.lunwen66.cn/article/a740e44639bbc9e451d0b474.html