hive进阶学习

创建hive表常用语句:

1. create [external] table if not exists default.xc_log_20170416 (
ip string,
user string ,
...
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE 
)
LOCATION '/user/hive/warehouse/xc_log_20170416';
2. create table if not exists default.xc_log_20170416_cp 
AS select ip,user from default.xc_log_20170416;
3. create table if not exists default.xc_log_20170417 
like default.xc_log_20170416;

修改hive表名称:

alter table dept_like rename to dept_like_rename;

内部表 vs 外部表:

内部表也称为MANAGED_TABLE;
默认存储在/user/hive/warehouse下,也可通过location指定(很少指定)
删除表时,会删除表数据以及元数据
外部表称为EXTERNAL_TABLE;
在创建表时可以自己指定目录位置(LOCATION);
删除表时,只会删除元数据而不会删除表数据

创建分区表以及补充操作:

dfs -mkdir -p /user/hive/warehouse/dept_part/day=20170417 ;
dfs -put /.../.../some.txt /user/hive/warehouse/dept_part/day=20170417;
hive (default)> msck repair table dept_part;

hive中查询介绍:

having :

  • where 是针对单条记录进行筛选
  • having 是针对分组结果进行筛选

例:求每个部门平均工资大于2000 的部门
select dept,avg(sal) avg_sal from emp group by dept having avg_sal > 2000;

hive中排序:

  • Order By
    全局排序,一个reduce
  • Sort By
    每个reduce内部进行排序,全局不是排序
  • Distribute By
    类似MR中partition,进行分区,结合sort by使用,用在sort by之前
  • Cluster By
    当distribute和sort字段相同时,可以取代使用
    原文作者:来往穿梭
    原文地址: https://www.jianshu.com/p/b3afcb3c2cd1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞