Hive基础05、Hive引入数据

2022-11-30 17:53:46 浏览数 (1)

Hive基础05、Hive引入数据

前提

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

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

代码语言:javascript复制
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】信息文件 

代码语言:javascript复制
load data local inpath '/opt/temp/info.txt' overwrite into table users;

引入数据成功: 

导入完成查询一下看看:

代码语言:javascript复制
select * from users;

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

注:清空表数据语法结构

代码语言:javascript复制
truncate table table_name;

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

2、HDFS文件系统加载数据

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

换个文件【hadoopInfo.txt】

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

这里使用【put】上传

代码语言:javascript复制
hadoop fs -put /opt/temp/hadoopInfo.txt /

上传成功: 

引入数据

代码语言:javascript复制
load data inpath '/hadoopInfo.txt' into table users;
select * from users;

上传成功 

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

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

重新引入一下:

先删除

代码语言:javascript复制
truncate table users;

退出并重新添加数据:

代码语言:javascript复制
exit;

上传数据: 

代码语言:javascript复制
hadoop fs -put /opt/temp/hadoopInfo.txt /

再次进入hive

代码语言:javascript复制
use mytest;
show tables;
load data inpath '/hadoopInfo.txt' into table users;

引入成功:

overwrite】重写:

代码语言:javascript复制
load data local inpath '/opt/temp/info.txt' overwrite into table users;

总结

两种引入的语法对比:

代码语言:javascript复制
load data inpath '/hadoopInfo.txt' into table users;
load data local inpath '/opt/temp/info.txt' overwrite into table users;

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

0 人点赞