2015-10-05 107 views
0

我正在研究Hive(表),並且在更新和刪除外部表時遇到了一些問題。 我創建2個外部表:T1和T2用相同屬性更新/刪除Hive中的外部表

create external table T1(
nom string, 
prenom string, 
age int); 

隨着查詢:

insert overwrite table T2( 
select 
nom, 
prenom, 
age from T1; 

我可以更新與T1數據T2,但這樣做:

drop table T2; 

和然後重新創建它create external table T2.....我在下降之前自動獲得所有存在於T2中,而我會有一個空表。 這是「正常的」。任何人都可以向我解釋,爲什麼?和/或重新調用某種方法?

thx。

+0

你看,如果你使用'external'關鍵字,這意味着如果表將被刪除,數據將不會被刪除。你可以創建沒有這個關鍵字的第二個表格 –

+0

嗨James,是否可以這樣做:插入覆蓋列col1 ...?而不是:插入覆蓋表T1 .... ??我需要它來更新表格的一列。 Thx – Shakile

+0

不幸的是沒有。 –

回答

0

刪除表格不會刪除HDFS中的數據。該文件將在文件夾

/user/hive/warehouse/dbname.db/tablename 

嘗試通過從HDFS或在創建查詢本身指定一些其他位置的數據創建表的第二次上市。