Hive:第 5章 DML 数据操作

Posted 亿钱君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive:第 5章 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 数据操作的主要内容,如果未能解决你的问题,请参考以下文章

打怪升级之小白的大数据之旅(六十四)<Hive旅程第五站:DML基本操作>

Hive学习——DDL&DML&DQL语句

Hive学习——DDL&DML&DQL语句

Hive(五)DML数据操作

Hive的DML操作

第2章 Hive安装