2011-12-16 48 views
2

我目前正在創建一個外部表像:hive創建表文件名000000_0?

CREATE EXTERNAL TABLE site_datatype (
.... 
yada yada 
.... 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
LOCATION '/user/accounting/summary/2011-12-15/site_datatype.result' 

,而不是創建一個名爲「site_datatype.result」在它的內容當我運行插入覆蓋表中選擇文件,但是,它會創建一個目錄「site_datatype.result」中有一個名爲「000000_0」的文件(雖然內容正確)。

這是應該這樣工作嗎?如果是的話,我該如何解決這個問題(內部配置單元)才能以我需要的方式完成它?

感謝, 馬里奧

回答

3

蜂巢工作在目錄級別,因此多減速器可以迅速傾倒成果轉化爲HDFS。如果要在文件級別運行,則必須將其發送到單個Reducer以合併到單個文件中,從而增加了不必要的瓶頸。

如果您絕對需要單個文件中的Hive表中的數據,則可以將reducer的數量設置爲1,然後查詢您的數據並將其推送到新的表或目錄(通過Insert Overwrite)。

另一種選擇是從HDFS(hadoop fs -get hive/warehouse/sampletable /。)中獲取表格,然後將所有文件重新組合到一起。

+0

好吧,我懷疑這樣的事情。謝謝! – Mario 2011-12-18 12:22:46