gpt4 book ai didi

hadoop - 如何在不破坏同一路径下的另一个表的情况下,删除带有其基础文件结构的HIVE表?

转载 作者:行者123 更新时间:2023-12-02 18:57:00 24 4
gpt4 key购买 nike

假设我们在相同的HDFS文件路径下创建了2个配置单元表。

我希望能够删除具有HDFS文件路径的表,而不会破坏同一共享路径中的其他表。

通过执行以下操作:

drop table test;

然后:
hadoop fs -rm -r hdfs/file/path/folder/*

我删除了两个表文件,而不只是删除了我删除的文件。

在另一篇文章中,我找到了此解决方案:
--changing the tbl properties to to make the table as internal
ALTER TABLE <table-name> SET TBLPROPERTIES('EXTERNAL'='False');
--now the table is internal if you drop the table data will be dropped automatically
drop table <table-name>;

但是我无法通过ALTER语句,因为我遇到了权限拒绝错误(用户在表上没有[ALTER]特权)

还有其他解决方案吗?

最佳答案

如果您有两个使用相同位置的表,那么此位置中的所有文件都属于这两个表,而与它们的创建方式无关。

假设您有位置table1hdfs/file/path/folder和位置table2hdfs/file/path/folder,并且在table1中插入了一些数据,则会创建文件,如果从table2中选择文件,则会读取文件,反之亦然:如果插入table2,则新文件将可以从table1访问。这是因为无论您将文件放在该位置如何,表数据都存储在该位置。您可以使用SQL将数据插入表中,手动将文件放置到位置等。

每个表或分区都有其位置,您不能单独指定文件。

为了更好地理解,请同时阅读此答案以及有关同一位置顶部的多个表的示例:https://stackoverflow.com/a/54038932/2700344

关于hadoop - 如何在不破坏同一路径下的另一个表的情况下,删除带有其基础文件结构的HIVE表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61598508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com