数据导入
Load导入
将文件中的数据导入(Load)到 Hive 表中
语法:
hive > load data [local] inpath '数据路径' [overwrite] into table table_name [partition (partcoll=vall,...)];
参数详解:
load data:加载数据
local:表示从本地加载数据到 hive 表,否则从 HDFS 加载数据到 hive 表
inpath:表示加载数据的路径
overwrite:表示覆盖表中已有的数据,否则表示追加
into table:表示加载到具体哪张表
实例:
1.无分区----加载本地路径数据到表 (overwrite重写)
hive > load data local inpath '/data/load_data.txt' overwrite into table tbl_test;
2.有分区----加载本地路径数据到表 (overwrite重写)
hive > load data local inpath '/data/load_data.txt' overwrite into tbl_test partition (date='20201212');
3.无分区----加载HDFS路径数据到表 (与本地相比,少一个local)
hive > load data inpath '/tmp/data.txt' overwrite into table tbl_test;
4.有分区----加载HDFS路径数据到表 (overwrite重写)
hive > load data inpath '/tmp/data.txt' overwrite into table tbl_test partition (date='20201212');
Insert导入
向表中插入数据(Insert)
1.基本插入数据
hive > insert into table table_name partition(date='20201212') values(10001,'test');
2.基本模式插入(根据单张表查询结果)
hive > insert overwrite table table_name partition(date='20201212')
select id, name from student where date='20201212';
3.多插入模式(根据多张表查询结果)
hive > from student
insert overwrite table table_name partition(date='20201212')
select id, name where date='20201212'
insert overwrite table table_name partition(month='201706')
select id, name where date='20201212';
As Select导入
查询语句中创建表并加载数据(As Select)
语法:
hive > create table table_name(id int) as select id from table_names;
Location导入
创建表时通过Location指定加载数据路径
语法:
hive > create table table_name(id int) location '集群数据路径';
Import导入
向表中装载数据(import)
注意:先用export导出后,再将数据导入
语法:
hive > import table table_name partition(date='20201212') from '/user/hive/warehouse/export/table_name';
数据导出
Insert导出
1.将查询的结果导出到本地
hive > insert overwrite local directory '/datas/export/file' select * from table_name;
2.将查询的结果格式化导出到本地
hive > insert overwrite local directory '/datas/export/file'
row format delimited fields terminated by '\t'
select * from table_name;
3.将查询的结果导出到HDFS上(没有local)
hive > insert overwrite directory '/datas/export/file'
row format delimited fields terminated by '\t'
select * from student;
Hadoop命令导出
注意:该命令在hive命令行执行
hive > dfs -get /user/hive/warehouse/test/date=20220505/000000_0
/opt/module/datas/export/test.txt;
Hive Shell命令导出
基本语法:(hive -f/-e 执行语句或者脚本 > file)
bin/hive -e 'select * from default.test;' > /opt/module/datas/export/test.txt;
Export导出到HDFS
hive > export table default.test to '/user/hive/warehouse/export/test';
清除数据(Truncate)
注意:Truncate只能删除管理表,不能删除外部表中数据
hive > truncate table table_name;