Hive:第 5章 DML 数据操作
Posted 亿钱君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive:第 5章 DML 数据操作相关的知识,希望对你有一定的参考价值。
DML 数据操作
1. 数据导入(1、2常用,其他了解即可)
1.1 向表中装载数据(Load)(重点掌握)
语法:
hive> load data [local] inpath '数据的 path' [overwrite] into table
student [partition (partcol1=val1,…)];
案例实操:
- (0)创建一张表
- (1)加载本地文件到 hive
hive (default)> load data local inpath
'/opt/module/hive/datas/student.txt' into table default.student;
- (2)加载 HDFS 文件到 hive 中
上传文件到 HDFS
hive (default)> dfs -put /opt/module/hive/data/student.txt
/user/atguigu/hive;
加载 HDFS 上数据
hive (default)> load data inpath '/user/atguigu/hive/student.txt' into
table default.student;
- (3)加载数据覆盖表中已有的数据
hive (default)> load data inpath '/user/atguigu/hive/student.txt'
overwrite into table default.student;
1.2 通过查询语句向表中插入数据(Insert)(重点掌握)
1)创建一张表
hive (default)> create table student_par(id int, name string) row format
delimited fields terminated by '\\t';
2)基本插入数据
hive (default)> insert into table student_par
values(1,'wangwu'),(2,'zhaoliu');
3)基本模式插入(根据单张表查询结果)
hive (default)> insert overwrite table student_par
select id, name from student where month='201709';
4)注意:
5)多表(多分区)插入模式(根据多张表查询结果)
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';
1.3 查询语句中创建表并加载数据(As Select)
1.4 Import 数据到指定 Hive 表中
- 此种方法无意义
2. 数据导出(不重要)
2.1 Insert 导出
1)将查询的结果导出到本地
hive (default)> insert overwrite local directory
'/opt/module/hive/student'
select * from student;
2)将查询的结果格式化导出到本地(解决分隔符问题)
hive(default)>insert overwrite local directory '/opt/module/hive/student'
>ROW FORMAT DELIMITED FIELDS TERMINATED BY '\\t'
>select * from student;
3)将查询的结果导出到 HDFS 上(没有 local)
hive (default)> insert overwrite directory '/user/atguigu/student2'
>ROW FORMAT DELIMITED FIELDS TERMINATED BY '\\t'
>select * from student;
注意:与2)的区别;
- 没有local
- 导出路径可以不存在
2.2 Hadoop 命令导出到本地
hive (default)> dfs -get /user/hive/warehouse/student/student.txt
/opt/module/data/export/student3.txt;
2.3 Hive Shell 命令导出
不常用
2.4 Export 导出到 HDFS 上
不常用
.2.5 Sqoop 导出
后续课程专门讲。
2.6 清除表中数据(Truncate)
注意:Truncate 只能删除管理表,不能删除外部表中数据
hive (default)> truncate table student2;
以上是关于Hive:第 5章 DML 数据操作的主要内容,如果未能解决你的问题,请参考以下文章