文章目录
前言
介绍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: 表示上传到指定分区
-- 加载本地文件loaddatalocal inpath '/home/hadoop/load1.txt'intotable tb_load1;-- 加载HDFS文件loaddata inpath '/hive/test/load2.txt'intotable tb_load1;-- 加载分区数据loaddata inpath '/hive/test/load_part_male.txt'intotable tb_load2
partition(sex='male');--使用overwrite:会覆盖之前的数据loaddatalocal inpath '/home/hadoop/load3.txt' overwrite intotable tb_load1;
方式二: insert 插入
1.普通表
-- 覆盖 insert overwrite table tb_insert1 select id,name from tb_select1;-- 追加insertintotable 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方式加载数据, 如其他有分区字段, 分区字段只以字段形式保留**
createtable tb_create_mode asselect 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 fieldsterminatedBY","select substr( md5(concat('mb',field_2,'xx')),9,6), field_3, field_4, field_5, field_6, field_7
fromdefault.longchuan_od_temp
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、
点赞
、
收藏
、
评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!
参考1
参考2
版权归原作者 lfwh 所有, 如有侵权,请联系我们删除。