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中是同一个用户的时间序列轨迹) ;
    
    
  • 相关阅读:
    [Heoi2013]Alo
    10.24 考试
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    第四周作业
    求最大值及其下标
    查找整数
    抓老鼠啊~亏了还是赚了?
  • 原文地址:https://www.cnblogs.com/camelroyu/p/7877655.html
Copyright © 2011-2022 走看看