Hive表DML操作

一.数据导入

1.向表中装载数据(load)

1.语法

load data [local] inpath 'path' overwrite | into table tablename [partition(partcol1=val,...)]

(1)load data:表示加载数据

(2)local:表示从本地加载数据到Hive表,否则从HDFS中加载数据到Hive表

(3)inpath:表示加载数据的路径

(4)overwrite:表示覆盖表中已有数据,否则表示追加

(5)into table:表示加载到哪张表

(6)partition:表示上传到指定分区

2.实际操作

(1)创建一张名为student的表

(2)加载本地文件到Hive

(3)加载HDFS文件到Hive中

1)上传文件到HDFS

2)加载HDFS上的数据

3)覆盖student表中的数据

2.通过查询语句向表中插入数据(Insert)

1.创建一张分区表

 2.插入数据

 插入多次时还可以采用这种方式:

我们可以看到insert其实底层调的是mapreduce。 

3.在查询语句中调用表并加载数据

根据查询结果创建表,查询的结果会添加到新创建的表中,注意和like创建表的区别。

4.创建表时通过LOCATION指定加载数据路径

本来我们的表创建时是默认在/user/hive/warehouse下的是吧,我们可以更改这个location,然后put数据上去

5.Import数据到指定Hive表中

这里的导入只能导入export导出的文件,因为格式export导出的是一个metadata和data文件夹。 

6.直接使用Insert插入数据 

insert into table student values (4,'maliu');

二.数据导出

1.Insert导出

1.将查询的结果导出到本地

2.将查询结果导出到HDFS

2.HDFS导出到本地

3.Hive shell命令导出

4.Export导出到HDFS 

注意:1)导出文件夹必须为空 

           2)因为它的导出格式使得它只能由Import导入

三.清空表数据(truncate)

truncate只能清空管理表中数据,外部表不行

命令:truncate table tablename;

猜你喜欢

转载自blog.csdn.net/qq_39327985/article/details/85064081