irpas技术客

Hive数据导入/插入数据(重点)_梦里Coding_hive插入数据

网络 4101

向表中导入数据(load)

实操案例: (1)创建一张表:

create table student(id string, name string) row format delimited fields terminated by '\t';

(2)加载本地文件到Hive,如果是从linux本地加载的文件,要添加local关键字。

load data local inpath '/opt/module/datas/student.txt' into table default.student;

(3)从HDFS文件加载到Hive: 首先将数据上传到HDFS当中:

hive (default)> dfs -put /opt/module/datas/student.txt /user/zhang/hive;

再从HDFS上加载数据到Hive中:

load data inpath '/user/zhang/hive/student.txt' into table default.student;

(4)加载数据覆盖表中已有的数据:

上传文件到HDFS:

dfs -put /opt/module/datas/student.txt /user/zhang/hive;

HDFS上将数据导入到Hive:

load data inpath '/user/zhang/hive/student.txt' overwrite into table default.student; 向表中插入数据(Insert)

(1)创建一张分区表:

create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';

(2)基本插入数据:

insert into table student partition(month='201709') values(1,'wangwu');

(3)基本模式插入(根据单张表查询结果)

insert overwrite table student partition(month='201708') select id, name from student where month='201709';

(4) 多插入模式(根据多张表查询结果)

from student insert overwrite table student partition(month='201707') select id, name where month='201709' insert overwrite table student partition(month='201706') select id, name where month='201709'; 查询语句中创建表并加载数据 create table if not exists student3 as select id, name from student; 创建表时通过Location指定加载数据路径

创建表,并指定在hdfs上的位置

create table if not exists student3( id int, name string ) row format delimited fields terminated by '\t' location '/user/hive/warehouse/student3';

上传数据到hdfs上

dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5;

查询数据:

select * from student5;


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #hive插入数据 #TABLE #studentid #string #name