> 文档中心 > Hive基础05、Hive引入数据

Hive基础05、Hive引入数据

Hive基础05、Hive引入数据

前提

Hive表中的数据不能通过insert语句插入,而是load data语句进行加载,其中加载的数据来源主要包括:

1、本地文件系统加载数据

2、HDFS文件系统加载数据

load data [local] inpath 'filePath' [overwrite] into table tableName

目录

Hive基础05、Hive引入数据

1、本地文件系统加载数据

2、HDFS文件系统加载数据

总结


1、本地文件系统加载数据

1    admin    管理员    男
2    wangyuyan    王语嫣学霸    女
3    zhaolinger    赵灵儿玲珑天女    女
4    xiaolongnv    杨过的姑姑    女

使用XFTP在【/opt/temp】下上传【info.txt】信息文件 

load data local inpath '/opt/temp/info.txt' overwrite into table users;

引入数据成功: 

导入完成查询一下看看:

select * from users;

上传完成后可以在:【/user/hive/warehouse/mytest.db/users】看到【info.txt】文件

注:清空表数据语法结构

truncate table table_name;

注意改一下table_name的名称即可。

2、HDFS文件系统加载数据

首先要从hive中退出来,使用【exit;】即可

换个文件【hadoopInfo.txt】

1    文鸯    大将军    男
2    满宠    装逼死得快    男
3    李进    打跑吕布不用怕    男
4    花木兰    巾帼英雄    女

这里使用【put】上传

hadoop fs -put /opt/temp/hadoopInfo.txt /

上传成功: 

引入数据

load data inpath '/hadoopInfo.txt' into table users;select * from users;

上传成功 

这里应该先删除数据再引入,或者是使用【overwrite】重写的这个关键字。

这里演示一下删除后再引入的操作:

重新引入一下:

先删除

truncate table users;

退出并重新添加数据:

exit;

上传数据: 

hadoop fs -put /opt/temp/hadoopInfo.txt /

再次进入hive

use mytest;show tables;load data inpath '/hadoopInfo.txt' into table users;

引入成功:

overwrite】重写:

load data local inpath '/opt/temp/info.txt' overwrite into table users;

总结

两种引入的语法对比:

load data inpath '/hadoopInfo.txt' into table users;load data local inpath '/opt/temp/info.txt' overwrite into table users;

很明显的可以看到是是否有【local】,也就是是否声明使用本地呗,如果不使用本地,默认的就是使用【HDFS】上面的数据了。