hive中怎么删除表中的部分数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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命令行查看此表是否还有数据。
参考技术A Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中。 参考技术B 在我实际的开发经验中,可以这样做。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; 参考技术C insert overwrite table t_table1 select * from t_table1 where XXXX;
其中xxx是你需要保留的数据的查询条件。
如果清空表,如下:
insert overwrite table t_table1 select * from t_table1 where 1=0;本回答被提问者和网友采纳 参考技术D 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 外部表更改为同一数据库中的内部表也会从另一个表中删除数据【英文标题】:changing hive external table to internal table in the same database also drops the data from the another table 【发布时间】:2019-01-29 22:19:10 【问题描述】:我一直在尝试使用语句删除 hive 外部表
修改表 $tableName set tblproperties('EXTERNAL' = 'FALSE');
在我通过这些属性并做一个
删除表表名;
此命令还会从其中的其他配置单元表中删除数据 数据库。
请任何人都可以建议我为什么这样做?如果有什么办法 我们只能删除一个没有提到的外部表 丢失其他数据。
ALTER TABLE TABLENAME set tblproperties('EXTERNAL' = 'FALSE');
drop table tablename;
【问题讨论】:
如果有其他表的位置指向同一位置,这是可能的。 是的,我想通了,但感谢您确认感谢 leftjoin 请通过测试查看此答案:***.com/a/54038932/2700344 帮了我很多,再次感谢老兄。 【参考方案1】:当您在 Hive 中删除托管表时,其包含数据文件的位置也会被删除。并且在技术上可以在同一位置创建许多表,包括托管表和外部表,请参见answer 所以,这种情况是很有可能的。使用相同位置创建的其他一些表也将被清空。实际上,Hive 中的数据和表是松散连接的东西。 Hive 中的表是关于位置、模式、SerDe、统计信息、访问权限等的元存储信息。数据存储在 HDFS/S3 或其他兼容的文件系统中。您可以使用其他一些方法来删除数据或加载数据,例如hadoop fs -rm
命令,而不仅仅是 Hive 中的托管表。
【讨论】:
以上是关于hive中怎么删除表中的部分数据的主要内容,如果未能解决你的问题,请参考以下文章
将 hive 外部表更改为同一数据库中的内部表也会从另一个表中删除数据
Hive实现删除部分数据 delete from where