1 导入数据到 Hive 表
load data [local] inpath 'filepath'
[overwrite] into table tablename
[partition (partcol1=val1,partcol2=val2...)]
- 原始文件的存储位置
- 本地 local
- hdfs
- 对表的数据是否覆盖
- 覆盖 overwrite
- 追加
- 分区表加载特殊性
1.1 加载本地数据到 hive 表
load data local inpath '/home/hadoop/emp.txt' into table default.emp;
1.2 加载 hdfs 文件到 hive 表
load data inpath '/user/hive/warehouse/emp.txt' into table default.emp;
1.3 加载数据时覆盖表中已有的数据
load data local inpath '/home/hadoop/emp.txt' overwrite into table default.emp;
1.4 创建表时通过 insert 加载
create table default.emp_ci like emp;
insert into table default.emp_ci select * from default.dept
2 Hive 数据导出
2.1 直接导出
insert overwrite local directory '/home/hadoop/hive_exp_emp'
SELECT * FROM default.emp;
2.2 导出到本地
insert overwrite local directory '/home/hadoop/hive_exp_emp'
row format delimited fields terminated by '\t'
collection items terminated by '\n'
SELECT * FROM default.emp;
2.3 通过 hive -e
导出
hive -e "select * from default.emp;" > /home/hadoop/exp_res.txt
2.4 导出到 hdfs
insert overwrite directory '/user/hive/warehouse/hive_exp_emp'
SELECT * FROM default.emp;
2.5 sqoop工具
- hdfs / hive -> rdbms
- rdbms -> hdfs / hive / hbase