hive 创建外部表时能否直接导入数据?
时间: 2023-10-18 10:19:37 浏览: 103
hive-笔记--hive常用用法
是的,Hive创建外部表时可以直接导入数据。下面是具体的步骤:
1. 打开Hive命令行终端,输入以下命令以创建一个新的数据库:
```
CREATE DATABASE my_database;
```
2. 使用以下命令来选择创建的数据库:
```
USE my_database;
```
3. 输入以下命令创建一个新的外部表,并直接从数据文件中导入数据,例如我们创建一个名为`my_table`的外部表:
```
CREATE EXTERNAL TABLE my_table (
id INT,
name STRING,
age INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/user/hive/data'
tblproperties ("skip.header.line.count"="1");
LOAD DATA LOCAL INPATH '/path/to/data/file/data.txt' OVERWRITE INTO TABLE my_table;
```
上述命令创建了一个外部表,其结构与前面创建的表相同,但是它的数据存储在`/user/hive/data`目录下,而不是Hive默认的目录中。在表的属性中,我们使用了`"skip.header.line.count"="1"`来跳过数据文件的第一行,这样就不会将数据文件的表头导入到表中。
4. 在创建外部表的同时,使用`LOAD DATA`命令将数据从本地文件中导入到外部表中,例如我们将数据文件存储在`/path/to/data/file/data.txt`目录下。这里使用了`LOCAL INPATH`参数来指明数据文件的本地路径,`OVERWRITE`参数表示如果表中已经有数据,则覆盖原有数据。
到这里,我们就完成了Hive创建外部表并直接导入数据的过程。需要注意的是,外部表的数据存储在Hadoop集群中,并且Hive只是对这些数据的元数据进行管理,因此在删除外部表时,数据不会被删除。
阅读全文