当我DROP TABLE IF EXISTS <Table Name>
在蜂巢中使用时,它不会释放内存。这些文件被创建为0000_n.bz2
并且它们仍然在磁盘上。
我在这里有两个问题:
1)这些文件会随着每次插入而继续增长吗?2) 是否有任何 DROP 等效于删除磁盘上的文件?
当我DROP TABLE IF EXISTS <Table Name>
在蜂巢中使用时,它不会释放内存。这些文件被创建为0000_n.bz2
并且它们仍然在磁盘上。
我在这里有两个问题:
1)这些文件会随着每次插入而继续增长吗?2) 是否有任何 DROP 等效于删除磁盘上的文件?
下面的函数可以用 Lambda 表达式不那么冗长吗?我怎样才能把它修剪下来?它正在调用FilenameFilter.accept()
Java方法。
val files = File(SECTIONS_DIR).listFiles(object : FilenameFilter {
override fun accept(dir: File?, filename: String): Boolean {
if (filename.matches(regex))
return true
else
return false
}
})
Hive 中有两种类型的表。Hive 管理表:如果你删除一个 Hive 管理表,HDFS 中的数据会被自动删除。
外部表:如果您删除外部表,hive 不会删除基础数据。
我相信你的是一个外部表。
你可以做几件事:
检查表是否为外部表,在这种情况下,您需要在 HDFS 上手动删除文件,因为删除表不会删除文件: hadoop fs -rm /HDFS_location/filename
其次检查您是否在正确的数据库中。您需要在删除表之前发出 use database 命令。数据库应与创建表的数据库相同。
如果存在 table_name purge,则删除表;
此命令还将从垃圾文件夹中删除数据文件,并且在删除表后无法恢复