一.数据导入
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;