Hive数据加载方式(load、insert;普通表、分区表)
•
大数据
文章目录
- 前言
- 方式一:load data
- 方式二: insert 插入
-
- 1.普通表
- 2.分区表
- 方式三:as select
- 数据导出
-
- (1)导出到本地
- 总结
前言
介绍Hive数据加载方式(insert、load)
方式一:load data
基础语法:
load data [local] inpath ‘/opt/module/datas/student.txt’ [overwrite] into table student[partition ]
参数说明:
1 load data: 表示加载数据
2 local: 表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
3 inpath: 表示加载数据的路径
相对路径,例如:project/data1
绝对路径,例如:/user/hive/project/data1
包含模式的完整 URI,如:hdfs://namenode:9000/user/hive/project/data1
4 overwrite: 表示覆盖表中已有数据,否则表示追加。目标表(或者分区)中的内容会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中
5 into table: 表示加载到哪张表
6 student: 表示具体的表
7 partition: 表示上传到指定分区
-- 加载本地文件 load data local inpath '/home/hadoop/load1.txt' into table tb_load1; -- 加载HDFS文件 load data inpath '/hive/test/load2.txt' into table tb_load1; -- 加载分区数据 load data inpath '/hive/test/load_part_male.txt' into table tb_load2 partition (sex='male'); --使用overwrite:会覆盖之前的数据 load data local inpath '/home/hadoop/load3.txt' overwrite into table tb_load1;
方式二: insert 插入
1.普通表
-- 覆盖 insert overwrite table tb_insert1 select id,name from tb_select1; -- 追加 insert into table tb_insert1 select id,name from tb_select1;
2.分区表
-- 分区插入 insert overwrite table tb_insert_part partition(sex = 'male') select id,name from tb_select1 where sex='male'; -- 动态分区插入(需先设置非严格模式) set hive.exec.dynamic.partition.mode=nonstrict; insert overwrite table tb_dy_part partition(sex) select id,name,sex from tb_select1;
方式三:as select
注意: 只能以as方式加载数据, 如其他有分区字段, 分区字段只以字段形式保留
create table tb_create_mode as select id,name from tb_select1;
数据导出
(1)导出到本地
insert overwrite local directory '/home/hadoop/' select id,name from tb_select1;
例子 :
INSERT overwrite directory "/user/yuanpengfei/ypf/lifeng/vehPOI" ROW format delimited fields terminated BY ","
select substr( md5(concat('mb',field_2,'xx')),9,6), field_3, field_4, field_5, field_6, field_7
from default.longchuan_od_temp
总结
如果此篇文章有帮助到您, 希望打大佬们能关注、点赞、收藏、评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!
参考1
参考2
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/1d84e11f77.html
