Hive学习笔记(三)-- DML和DDL操作

01-Hive表的DDL操作--修改表

创建一个分区表并加载数据

查询数据

修改表

加载数据

查询一下

另外一个命令查询表的分区

如何删除一个分区呢

查询一个,分区被删除了

 修改表名

查询改名的新表的数据

增加一列

查看表的结构,增加了一个字段

修改列

再来查看一下,除了分区列,其他所有列都被替换成了name

 

修改对应列

查看表结构,发现name字段改变了

 

02-Hive显示命令

查看分区

查看自带函数

查看详细表结构

格式化查看表结构

可以在hive控制台输入linux命令

!clear 清屏

!ls

展现hdfs文件,与hdfs文件树进行交互

 

 03-Hive的DML操作load

新建一个分区表

新建数据文件

加载对应的数据,这里数据的路径可以是绝对路径,也可以是相对路径

查看数据导入没有

再新建一个数据文件stu_partition1

上传到hdfs上面

查看hdfs上有没有这个文件

加载hdfs上的数据文件,不用加local了

再来查询下表数据,数据导入成功了

overwrite关键字,相当于覆盖

 

04-Hive的DDL操作insert

 创建表,like关键字

查出数据并导入对应表

查询数据

导入数据到本地目录,这里没有加local,所以导入到的是hdfs

查看hdfs上面对应的目录有没有数据

查询hdfs上导入的数据对不对

指明local,导入查询数据到本地

 

查看导入到本地的目录

查看数据对不对

 

继续向这个表插入数据

此时报了一个错

需要执行这一句,自动分区模式

查询插入数据后的表数据

 

05-Hive的DDL操作-select语句

 

创建表,并制定数据目录,目录在hdfs根目录

查询hdfs上的数据

查询表数据

条件查询

 

分组查询

MapReduce结果

cluster by

这跟select * 结果是一样的

 设置task为4,才能看到结果

看一下最终的结果

顺序不是依次递增的,说明多个task起作用了,通过no对4取模

 distribute by

 

查看结果表结果,跟刚才的结果一模一样,因为cluster by = distribute by + sort by,后面by字段一样的时候

by的字段不一样结果就不同了

如果把上面那条命令后便替换成sort by age

查看hdfs上的表数据,发现是按照年龄排序的

 

posted on 2018-08-04 15:16  动物管理猿  阅读(155)  评论(0编辑  收藏  举报

导航