Hive导入数据的方式
官网文档:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
local参数为原始文件存储的位置,位置可以是
- 本地local
- hdfs文件系统
overwrite参数
- 使用时会将表中的数据覆盖
- 不使用会在表中追加数据
partition参数为分区表加载
eg:
加载本地文件到hive表中
load data local inpath '/opt/datas/emp.txt' into table default.emp;
加载hdfs文件到hive表中
load data inpath '/user/user1/hive/datas/emp.txt' into table default.emp;
加载数据覆盖表中已有的数据
load data local inpath '/opt/datas/emp.txt' overwrite into table default.emp;
创建表时通过insert加载
create table default.emp_ci like emp;
insert into table default.emp_ci select * from default.emp;
创建表的时候通过location指定加载
...
Hive导出数据的方式
第一种,导出在本地文件中
insert overwrite local directory '/opt/datas/hive_exp_emp' select * from default.emp;
直接导出会有乱码,根据原有的表结构进行导出
insert overwrite local directory '/opt/datas/hive_exp_emp'
row format delimited fields terminated by '\t'
collection items terminated by '\n'
select * from default.emp;
注:
row format delimited fields terminated by '\t'
collection items terminated by '\n'
每行中的数据以\t隔开,每行数据以\n结束。
第二种,导出在本地文件中
bin/hive -e "select * from default.emp;" > /opt/datas/exp_res.txt
第三种,导出在hdfs文件系统中
insert overwrite directory '/user/user1/hive/hive_exp_emp' select * from default.emp;