美文网首页
HiveSql-常用语句

HiveSql-常用语句

作者: LeonTung | 来源:发表于2020-08-17 19:51 被阅读0次

    拼接排序

    select category_id,
    
          regexp_replace(
    
            concat_ws(',',  -- 对排序后array拼接
    
              sort_array(  -- 对数组排序
    
                collect_list(  -- 竖转横
    
                  concat_ws(':',lpad(cast(rn as string),4,'0'),cast(topic_id as string)) -- 字符串排序需转为同位数
    
                )
    
              )
    
            ),
    
          '\\d+\:','') -- 替换掉用于排序的拼接 0001:
    
    from topic_recommend_score
    
    where rn >= 1 and rn <= 1000
    
    group by category_id
    
    ;
    

    json字符串解析

     get_json_object(page_attr,'$.goods_id')
    

    时间函数

    (1) 获取当前时间: from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
    

    条件中位数

    percentile_approx(if(click_ps_cnt>0 and label=1,click_ps_cnt,null),0.5) 
    

    排名

    (1) row_number() over() -- 123 
    
    (2) rank() over()              -- 113
    
    (3) dense_rank() over()   -- 112
    
    (4) ntile(3) over()  -- 1112233(7r), 按数量平均切成3片(每片数量差值不超过1, 默认增加第一切片), 常用归一化 rn/3
    

    字符串split

    (1) lateral view explode (split(tagids, ',')) s as tagid  -- hive
    
    (2) cross join unnest (split(tagids, ',')) as s (tagid)  -- presto
    

    判断a字段是否包含b字段的内容

    (1) a like concat('%', b, '%')
    
    (2) array_contains(split(a, ' '), b) -- 此方法只适合判断a数组切分后是否有b元素, 如 a='xy', b='x', 此时返回false.
    

    相关文章

      网友评论

          本文标题:HiveSql-常用语句

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