Hive:DROP TABLE如果EXISTS没有释放内存<table name =“”> </table>

时间:2015-03-09 15:45:21

标签: hive drop-table

当我在配置单元中使用DROP TABLE IF EXISTS <Table Name>时,它不会释放内存。这些文件创建为0000_n.bz2,它们仍在磁盘上。

我在这里有两个问题:

1)这些文件是否会继续增加每个插入? 2)是否有任何DROP等同于删除磁盘上的文件?

3 个答案:

答案 0 :(得分:5)

配置单元中有两种类型的表。 Hive托管表:如果删除配置单托管表,HDFS中的数据将自动删除。

外部表:如果删除外部表,则配置单元不会删除基础数据。

我相信你的是外表。

答案 1 :(得分:4)

你可以做的事情很多:

  • 检查表是否是外部表,在这种情况下,您需要在HDFS上手动删除文件,因为删除表不会丢弃文件: hadoop fs -rm / HDFS_location / filename

  • 然后检查您是否在正确的数据库中。您需要在删除表之前发出use database命令。数据库应与创建表的数据库相同。

答案 2 :(得分:0)

如果存在table_name清除,则删除表;

此命令还将从废纸folder文件夹中删除数据文件,并且在删除表后将无法恢复