EXTERNAL TABLE到Hive中的文件?

时间:2014-10-30 14:48:27

标签: hadoop hive

是否可以将LOCATION中的文件用于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)
(...)

我只需要使用目录吗?我没有在手动参考中找到该信息...

关心
的Pawel

1 个答案:

答案 0 :(得分:3)

是的,您必须将此文件放在目录中,然后在其上创建一个外部表。根据文档: EXTERNAL表指向其存储的任何HDFS位置,而不是存储在配置属性hive.metastore.warehouse.dir指定的文件夹中

即使您创建内部表配置单元默认情况下也会在 hive.metastore.warehouse.dir 中为其创建一个目录,并且在创建外部表时需要执行相同的操作,但事实是不使用默认目录。