Hive数据导入的类型

1.Hive数据导入的六种类型:

以下面两个表来实验:

Hive数据导入的类型

1.从本地文件系统导入到hive表中:

使用load data语句可以直接导入本地文件到hive表中,加关键字local表示从本地系统上传文件到hive表:

Hive数据导入的类型

2.从HDFS导入文件到hive表中:

如果不加关键字local表示从hdfs加载文件到hive表。下面先上传本地文件到hdfs,再加载到hive表:

Hive数据导入的类型

load语句实际上是 移动文件

3.加载数据覆盖表中已有的数据:

上边2个语句中,load data语句,OVERWRITE参数决定加载文件时是否覆盖。

4.创建表时通过select语句加载:

Hive数据导入的类型

create table ... as 语句会走mapreduce。

5.创建表,通过insert语句加载:

Hive数据导入的类型

可以增加overwrite选项,来选择insert时,是否覆盖原表的数据。如果不加overwrite参数再执行一次该语句,那么emp3表的数据将会翻倍,查看该表hdfs的目录,会发现有2个文件(而不是一个文件):

Hive数据导入的类型

6.创建表的时候通过Location指定:

先创建一张表,并指定该表的LOCATION,之后往LOCATON目录(HDFS上的路径)上传数据文件,再查询表时,就可以看到数据了。

Hive数据导入的类型

如果先上传文件,再创建一个表,LOCATION目录是上传的HDFS目录的话,上传的目录会被覆盖清空。