我已经在Hive中创建了一个表,我想知道我的表创建在哪个目录下?

78

我在Hive中创建了一个表,想知道它创建在哪个目录?我需要知道这个路径...

10个回答

107

DESCRIBE FORMATTED my_table;

或者

DESCRIBE FORMATTED my_table PARTITION (my_column='my_value');


这个答案非常出色……非常感谢你Joe……我可以在这里找到关于我的表的每一件事。 - Muneer Basha Syed
3
非常好,你有什么想法可以让我们用一个命令查看所有分区信息吗? - minhas23
我有一个maprfs系统。我正在尝试找到为其创建hive视图的文件位置。我正在描述hive视图,但我没有看到那里的位置选项。你能帮忙吗! - semicolon

26

Hive中描述表的方法有三种。

  1. 使用describe table_name;命令查看Hive表的主要信息

  2. 使用describe extended table_name;命令查看表的更详细信息

  3. 使用describe formatted table_name;命令以清晰的方式查看代码并查看所有信息。同时以清晰的方式描述所有细节。


15
您可以使用以下命令完成相同的操作。
show create table <table>;
desc formatted <table>;
describe formatted <table>;

13
DESCRIBE FORMATTED <tablename>
或者
DESCRIBE EXTENDED <tablename>

我更喜欢格式化,因为它更易于人类阅读


8
为了查看任何一个表(内部或外部)的结构和位置(目录),我们可以使用表的创建语句 -
show create table table_name;

5
在Hive 0.1中,您可以使用SHOW CREATE TABLE来查找Hive存储数据的路径。
在其他版本中,没有很好的方法来实现这一点。
更新:
感谢Joe K。
使用DESCRIBE FORMATTED <table>显示表信息。
PS:此处不支持database.tablename。

我该怎么做才能在非默认数据库中查看表的信息?我无法在该命令中提供数据库。 - ludwigm
确认性的。DESCRIBE FORMATTED <table> 能够工作,而 SHOW CREATE TABLE 无法工作。 - runzhi xiao

3

除了pensz的答案,您还可以通过以下方式获取更多信息:

DESCRIBE EXTENDED my_table;

或者

DESCRIBE EXTENDED my_table PARTITION (my_column='my_value');

2

所有由 HIVE 管理的表都存储在以下 HDFS 位置。

hadoop fs -ls /user/hive/warehouse/databasename.db/tablename

4
这似乎非常依赖于安装/配置,对吗? - Brian Agnew
这正是问题。 - Thomas Decaux

1
如果您使用Hue,您可以在元数据应用程序中浏览表格,然后单击“查看文件位置”:这将在其目录中打开HDFS文件浏览器。

0

如果您没有特别指定位置,则在“默认”目录中。

您可以使用describe和describe extended了解表结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接