2016-05-31 42 views
0

假設您有兩個外部Hive ORC表。它們都具有相同數據類型,相同分區和相同桶的相同模式。更改源位置後還原Hive ORC表?

我試圖放下表A,並將表B的位置設置爲表A的源位置。我都試過:

alter tableB set location "hdfs://.../tableA" 

msck repair table B 

沒有運氣。

+1

您是否嘗試設置分區位置? – leftjoin

+0

爲了強調@leftjoin提出的問題,對於分區表,表級「位置」僅僅是未來分區**的默認根目錄**。現有分區在Metastore數據庫中註冊了自己的「位置」。你必須逐個修改它們。 –

+0

或者,您可以嘗試*(1)*刪除表B中的所有分區*(2)*更改表B的位置*(3)*運行「MSCK修復」以自動檢測子目錄。以該順序。 –

回答

0

由於它們是外部表格,因此在放置它們時文件仍然保留。所以你所要做的就是放棄表A和表B。然後使用表A的文件位置重新創建表b。

drop tableA; 
drop tableB; 
create external table if not exists tableB (
....your existing DDL 
) 
location 'tableA path';