0
假设您有两个外部Hive ORC表。它们都具有相同数据类型,相同分区和相同桶的相同模式。更改源位置后还原Hive ORC表?
我试图放下表A,并将表B的位置设置为表A的源位置。我都试过:
alter tableB set location "hdfs://.../tableA"
和
msck repair table B
没有运气。
假设您有两个外部Hive ORC表。它们都具有相同数据类型,相同分区和相同桶的相同模式。更改源位置后还原Hive ORC表?
我试图放下表A,并将表B的位置设置为表A的源位置。我都试过:
alter tableB set location "hdfs://.../tableA"
和
msck repair table B
没有运气。
由于它们是外部表格,因此在放置它们时文件仍然保留。所以你所要做的就是放弃表A和表B。然后使用表A的文件位置重新创建表b。
drop tableA;
drop tableB;
create external table if not exists tableB (
....your existing DDL
)
location 'tableA path';
您是否尝试设置分区位置? – leftjoin
为了强调@leftjoin提出的问题,对于分区表,表级“位置”仅仅是未来分区**的默认根目录**。现有分区在Metastore数据库中注册了自己的“位置”。你必须逐个修改它们。 –
或者,您可以尝试*(1)*删除表B中的所有分区*(2)*更改表B的位置*(3)*运行“MSCK修复”以自动检测子目录。以该顺序。 –