Print

hive删除表内重复数据

问:hive中怎么删除表中的部分数据
  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;
问:Hive删除表中数据
  1. 答:问题描述:
    当我们想要删除Hive表中部分符合条件的数据时:
    发现Hive表删除数据不能使用DELETE FROM table_name 中SQL语句
    drop table 表名;
    如果要永久性删除,不准备再恢复:
    drop table 表名 purge;
    推荐博客: 让Hive支持行级insert、update、delete
    参考博客:
问:Hive SQL 表中去重复
  1. 答:抱歉,来晚了。SELECT user_id, shop_id FROM goods GROUP BY user_id, shop_id;

本文来源: https://www.lunwen66.cn/article/a740e44639bbc9e451d0b474.html