我正在对外部(非托管)表的应用程序问题进行故障排除,该表是通过 Cloudera Impala 使用 CREATE TABLE X LIKE PARQUET 语法创建的。我正在尝试确定包含外部表分区的文件的位置,但很难确定如何执行此操作,也很难找到描述此操作的文档。
如果我这样做:
show create table T1;
我看到 hive 管理的位置,例如:
LOCATION 'hdfs://nameservice1/user/hive/warehouse/databaseName'
如果我这样做:
describe formatted T1;
我看到该表实际上是外部的,但它没有提供任何关于非托管位置的信息。
| Table Type: | EXTERNAL_TABLE
| Location: | hdfs://nameservice1/user/hive/warehouse/databaseName/T1
问题: 如何确定构成此外部表的实际外部文件的位置/URI/父目录?
最佳答案
当您使用 impala 或 hive 创建外部表并且您想知道必须放置 HDFS 位置的位置时,例如:
创建外部表 my_db.table_name (列字符串)LOCATION 'hdfs_path'
如果不提供这些文件,可能位于执行命令和创建表的用户目录下。
更多详细信息,您可以查看此链接:
https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_create_table.html
希望能帮到你!
关于sql - Impala 外部表位置/URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785178/