Hadoop 我们如何删除一个配置单元表及其底层文件结构,而不损坏同一路径下的另一个表?
假设在同一HDFS文件路径下创建了两个配置单元表 我希望能够删除具有HDFS文件路径的表,而不会损坏同一共享路径中的其他表 通过执行以下操作:Hadoop 我们如何删除一个配置单元表及其底层文件结构,而不损坏同一路径下的另一个表?,hadoop,hive,hdfs,hive-partitions,Hadoop,Hive,Hdfs,Hive Partitions,假设在同一HDFS文件路径下创建了两个配置单元表 我希望能够删除具有HDFS文件路径的表,而不会损坏同一共享路径中的其他表 通过执行以下操作: drop table test; 然后: 我删除了两个表文件,而不仅仅是我删除的那个 在另一篇帖子中,我发现了这个解决方案: --changing the tbl properties to to make the table as internal ALTER TABLE <table-name> SET TBLPROPERTIES('E
drop table test;
然后:
我删除了两个表文件,而不仅仅是我删除的那个
在另一篇帖子中,我发现了这个解决方案:
--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>;
--将tbl属性更改为使表成为内部表
ALTER TABLE SET TBLPROPERTYS('EXTERNAL'='False');
--现在,表是内部的,如果您删除,表数据将自动删除
升降台;
但我无法通过ALTER语句,因为我遇到了一个权限被拒绝的错误(用户对表没有[ALTER]权限)
任何其他解决方案?如果有两个表使用同一位置,则此位置中的所有文件都属于这两个表,而不管它们是如何创建的 假设您的
table1
位置hdfs/file/path/folder
和table2
位置相同hdfs/file/path/folder
,并且您在table1
中插入了一些数据,则会创建文件,如果您从table2
中选择,则会读取这些文件,反之亦然:如果插入到表2
,则可以从表1
访问新文件。这是因为表数据存储在该位置,而不管您如何将文件放入该位置。您可以使用SQL将数据插入表中,手动将文件放入位置,等等
每个表或分区都有其位置,不能单独指定文件
为了更好地理解,请阅读此答案,并举例说明同一位置上的多个表格:
--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>;