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上的表数据,发现是按照年龄排序的