当我在配置单元中使用DROP TABLE IF EXISTS <Table Name>
时,它不会释放内存。这些文件创建为0000_n.bz2
,它们仍在磁盘上。
我在这里有两个问题:
1)这些文件是否会继续增加每个插入? 2)是否有任何DROP等同于删除磁盘上的文件?
答案 0 :(得分:5)
配置单元中有两种类型的表。 Hive托管表:如果删除配置单托管表,HDFS中的数据将自动删除。
外部表:如果删除外部表,则配置单元不会删除基础数据。
我相信你的是外表。
答案 1 :(得分:4)
你可以做的事情很多:
检查表是否是外部表,在这种情况下,您需要在HDFS上手动删除文件,因为删除表不会丢弃文件: hadoop fs -rm / HDFS_location / filename
然后检查您是否在正确的数据库中。您需要在删除表之前发出use database命令。数据库应与创建表的数据库相同。
答案 2 :(得分:0)
如果存在table_name清除,则删除表;
此命令还将从废纸folder文件夹中删除数据文件,并且在删除表后将无法恢复