2014-10-30 10 views
0

HIVE中的外部表可以使用LOCATION中的文件嗎?EXTERNAL TABLE到Hive中的文件?

CREATE EXTERNAL TABLE table1 
(
    line string 
) 
LOCATION '/hdp_in/fd/file.txt.gz'; 

,因爲我得到一個錯誤:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.fs.FileAlreadyExistsException Parent path is not a directory: /hdp_in/fd/file.txt.gz file.txt.gz 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.mkdirs(FSDirectory.java:1957) 
(...) 

我必須只使用目錄?我還沒有發現在手動參考該信息...

問候
帕維爾

回答

3

是的,你必須把這個文件在一個目錄,然後在它上面創建外部表。按照文檔:外部表指向任何HDFS位置的存儲,而不是即使你創建一個內部表蜂巢被存儲在配置屬性hive.metastore.warehouse.dir

指定的文件夾中默認情況下在hive.metastore.warehouse.dir內爲其創建一個目錄,創建外部表時除了不使用默認目錄這一事實外,還需要相同的行爲。

相關問題