当我从 Hive 交互式命令行删除托管表时,在 hdfs 上创建的基础文件位于/user/hive/warehouse/<databasename>.db
仍然存在。当我重新创建具有相同名称的表并尝试执行此操作时,这会导致问题
INSERT INTO TABLE
因为它仍然包含我在最初的操作中加载到这些分区(在我的例子中是 dt 和 hr 分区)中的数据。仅当我使用
INSERT OVERWRITE TABLE
它最终会正确加载数据吗,但我的 ETL 需要使用INSERT INTO TABLE
.
有任何想法吗?我准备好创建相同的表但使用不同的名称,或者只是进入并删除 hdfs 上的内容,但我担心这是否会破坏元存储或其他内容。最后,我确信它是一个托管表而不是外部表。
有时,Hive 会删除表元数据,但无法将文件移至垃圾箱。您检查过权限吗/user/<user>/.Trash
?确保 ETL 用户对此文件夹具有适当的权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)