【发布时间】:2017-12-13 03:46:33
【问题描述】:
我正在排除外部(非托管)表上的应用程序问题,该表是通过 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用户有rwx访问权限。
-
正确。外部表是使用显式外部位置创建的(该表是由另一个应用程序团队创建的 - 不是由我创建的),但该外部位置未在
show create table命令或describe formatted命令中列出。 -
你能粘贴整个节目创建表的结果吗?并请通知您的应用程序团队在创建表格时提及位置“/路径”。我怀疑他们可能会使用“如果不存在则创建表”来引导您以不同的方式。尝试删除表并使用该位置重新创建它。
标签: sql hadoop cloudera impala