zoukankan      html  css  js  c++  java
  • Hive的Transform功能

    官网的demo:

    FROM (
        FROM pv_users
        SELECT TRANSFORM(pv_users.userid, pv_users.date)
        USING 'map_script'
        AS dt, uid
        CLUSTER BY dt
    ) map_output
    INSERT OVERWRITE TABLE pv_users_reduced SELECT TRANSFORM(map_output.dt, map_output.uid) USING
    'reduce_script' AS date, count;

    使用MAPREDUCE关键字是SELECT TRANSFORM关键字的别名,下面的等价代码阅读跟清洗一点:

    
    
    FROM (
        FROM pv_users
        MAP pv_users.userid, pv_users.date
        USING 'map_script'
        AS dt, uid
        CLUSTER BY dt
    ) map_output
    INSERT OVERWRITE TABLE pv_users_reduced REDUCE map_output.dt, map_output.uid USING
    'reduce_script' AS date, count;
    
    

    MAP中,SELECT TRANSFORM() 等价于 关键字MAP 

    REDUCE中, SELECT TRANSFORM() 等价于 关键字 REDUCE  ;

    • CLUSTER BY关键字是DISTRIBUTE BYSORT BY的简写,这两者可以认为对应与Hadoop的partition和sort过程。如果partition和sort的key是不同的,可以使用DISTRIBUTE BYSORT BY分别指定。例如: distribute by a.user_id sort by a.user_id,a.begintime (同一个user_id的记录行都在同一个map中,并且按照begintime升序排列,每一个map中是同一个用户的时间序列轨迹) ;
    
    
  • 相关阅读:
    树上路径
    [HNOI2017]礼物
    Spoj 8372 Triple Sums
    [Swerc2014 C]Golf Bot
    【bzoj2194】快速傅立叶之二 FFT
    Linux下perl模块安装
    angularjs form表单验证
    Angularjs兼容IE
    input file限制上传文件类型
    angularjs判断页面数据是否渲染完成
  • 原文地址:https://www.cnblogs.com/camelroyu/p/7877655.html
Copyright © 2011-2022 走看看