Hive基础05、Hive引入数据
前提
Hive表中的数据不能通过insert语句插入,而是load data语句进行加载,其中加载的数据来源主要包括:
代码语言:javascript复制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】信息文件
代码语言: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】上面的数据了。