Hive数据导入和导出

HIve数据导入和导出

一 数据导入

  1. 语法
 hive> load data [local] inpath '数据的 path' [overwrite] into table 
student [partition (partcol1=val1,)];

(1)load data:表示加载数据
(2)local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
(3)inpath:表示加载数据的路径
(4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区

2. 加载本地文件到HDFS

 load data local inpath 
 '/opt/module/hive/datas/student.txt' into table default.student;

3. 加载HDFS文件到hive中

load data inpath '/user/RenJun/hive/student.txt' 
into table default.student;

4. 加载数据覆盖表中已经有的数据

  load data inpath '/user/RenJun/hive/student.txt' 
 overwrite into table default.student;

5. 将查询结果插入到表中

 insert overwrite table student_par
 select id, name from student where month='201709';

6. 将多张表的查询结果插入一张表中

 from student
 insert overwrite table student partition(month='201707')
 select id, name where month='201709'
 insert overwrite table student partition(month='201706')
 select id, name where month='201709';

7. 查询语句中创建新表并插入数据

 create table if not exists student3
 as select id, name from student;

二 数据导出

1. 将查询结果导出到本地

 insert overwrite local directory 
'/opt/module/hive/data/export /student' select * from student;

2. 将查询的结果格式化导出到本地

 insert overwrite local directory 
'/opt/module/hive/data/export/student1'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select * from student;

3. 将查询的结果导出到 HDFS

 insert overwrite directory '/user/RenJun/student2'
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
 select * from student;

4. 使用HIve shell命令导出到本地

 bin/hive -e 'select * from default.student;' >
/opt/module/hive/data/export/student4.txt; 

6. export导出到HDFS

export 和 import 主要用于两个 Hadoop 平台集群之间 Hive 表迁移

 export table default.student 
 to '/user/hive/warehouse/export/student';

你可能感兴趣的:(hive,大数据,hadoop)