是否可以将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
答案 0 :(得分:3)
是的,您必须将此文件放在目录中,然后在其上创建一个外部表。根据文档: EXTERNAL表指向其存储的任何HDFS位置,而不是存储在配置属性hive.metastore.warehouse.dir指定的文件夹中
即使您创建内部表配置单元默认情况下也会在 hive.metastore.warehouse.dir 中为其创建一个目录,并且在创建外部表时需要执行相同的操作,但事实是不使用默认目录。