Hive数据导入
提示:文章写完后,目录## Hive数据导入可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
现在是大数据时代,我们正以前所未有的速度和规模产生数据。大数据是用来描述数据规模巨大、数据类型复杂的数据集,它本身蕴含着丰富的价值。
提示:以下是本篇文章正文内容,下面案例可供参考
一、数据导入
数据导入一共有五大门派,一者load,二者insert,三者as select,四者通过location指定位置,五者import。
二、五大门派
1.load
代码如下(示例):
###1.使用local(本地路径)
load data local inpath '/root/export/data/student.txt' into table student3
load data local inpath '/root/export/data/student1.txt' into table student3
将文件上传到hdfs上
hadoop fs -put student.txt /
hadoop fs -put student1.txt /
然后在进行load
load data inpath '/student.txt' into table student4
load data inpath '/student1.txt' into table student4
但是需要注意的是这种方式加载数据,只能加载一次,因为加载数据的实质是文件的移动,加local的相当于复制,而不加local相当于是剪切。
2.向表中插入数据insert
代码如下(示例):
基本模式插入:
insert追加 table可加可不加
insert into student5 select id,name from student3;
overwrite覆盖,后面必须加table
insert overwrite table student5 select id,name from student3;
多表插入模式:
from student3 base insert overwrite table student6 select base.id,base.name insert into student7 select base.id,base.name;
3.查询语句创建表并加载数据As select
代码如下(示例):
create table if not exists student8 as select id,name from student3;
4.通过location指定位置
代码如下(示例):
在hdfs上传一个文件
hdfs dfs -mkdir /aaa
hadoop fs -put student1.txt /aaa
在hive中建一个student10,并指定路径\aaa
create table student10( id int, name string)
row format delimited fields terminated by '\t' location '/aaa'
结果如下图所示
5.import数据导入指定hive
代码如下(示例):
import table student11 from 'user/hive/warehouse/studen3'
这里的路径是export导出的路径
总结
五大门派各有千秋,其中最常见的便是load和insert,load加载的是文件,insert从其他表通过查询导入。