美文网首页
hive进阶学习

hive进阶学习

作者: 来往穿梭 | 来源:发表于2017-04-16 23:50 被阅读37次

    创建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字段相同时,可以取代使用

    相关文章

      网友评论

          本文标题:hive进阶学习

          本文链接:https://www.haomeiwen.com/subject/afmiattx.html