怎么看外部表数据存储的HDFS路径
时间: 2023-08-09 10:11:46 浏览: 151
要查看外部表在HDFS中的存储路径,可以使用以下命令:
```
DESCRIBE FORMATTED <table_name>;
```
其中 `<table_name>` 是你要查看的外部表的名称。
在输出结果中,你应该可以找到 `Location` 字段,它会显示外部表数据存储在HDFS中的路径。例如:
```
Location: hdfs://localhost:8020/user/hive/warehouse/my_external_table
```
这表示外部表数据存储在 `hdfs://localhost:8020/user/hive/warehouse/my_external_table` 路径下。
相关问题
在Hive CLI页面,创建数据库library。 2、创建一个borrow外部表,表结构与读者借阅信息的数据结构保持一致,并指定外部表的数据实际存储路径为HDFS的/user/root/library/borrow目录下。
在Hive CLI页面上创建数据库和外部表的步骤如下:
1. **创建数据库library**:
首先,你需要登录到Hive CLI。如果还没有数据库`library`,你可以输入以下命令创建它:
```
CREATE DATABASE IF NOT EXISTS library;
```
这条命令会在`library`不存在的情况下自动创建一个新的数据库。
2. **创建外部表borrow**:
现在我们将在`library`数据库中创建一个名为`borrow`的外部表,假设读者借阅信息包含字段如`reader_id`, `book_id`, `borrow_date`等。在Hive CLI中,你可以使用以下命令(请将`/user/root/library/borrow`替换为你实际的HDFS路径):
```sql
CREATE EXTERNAL TABLE IF NOT EXISTS library.borrow (
reader_id INT,
book_id STRING,
borrow_date DATE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION '/user/root/library/borrow';
```
这里`ROW FORMAT DELIMITED`指定了CSV格式,`FIELDS TERMINATED BY ','`和`LINES TERMINATED BY '\n'`分别指定了字段分隔符和行结束符,`LOCATION`指定了数据的实际存储位置。
执行完这两个命令后,外部表`borrow`就已经创建并指向了指定的HDFS路径,如果你有新的数据要插入这个表,只需指向该HDFS路径即可。
注意,由于这是基于字符串的描述,实际操作时请确保所有路径和表结构都是正确的,并且你有足够的权限访问和写入HDFS。此外,Hive通常不需要手动清理旧的数据,因为它会自动跟踪外部数据源的变化。
hive中我创建了外部表。然后我把表删除了,我又创建了一样名字的表,那么hdfs中存储的数据会影响我这个表吗,他们会产生联系吗
在Hive中,创建外部表并删除后再创建同名的表,HDFS中存储的数据不会受到影响。外部表在Hive中仅仅是对HDFS中数据的一个元数据描述,它并不拥有数据本身。
当你删除一个外部表时,仅仅是删除了元数据信息,即表的结构和位置等信息,而不会删除HDFS中的实际数据。所以,当你再次创建同名的表时,Hive会按照你指定的路径查找数据,并重新建立元数据信息。
在这种情况下,HDFS中存储的数据不会与你重新创建的同名表产生联系。新创建的表将从指定路径读取数据,并使用新的元数据信息进行管理。
需要注意的是,如果你删除了外部表后重新创建同名的表,并且指定了不同的路径来存储数据,则此时HDFS中的数据与新表之间也没有关联。每个表都会独立管理自己的数据。
总结起来,删除外部表并重新创建同名表不会影响HDFS中已经存储的数据,它们之间没有联系。重新创建的表将根据指定的路径重新加载数据,并使用新的元数据信息进行管理。
阅读全文