hiveSql学习

1、如何将多字段拼接成一个字段,并且排除原始表中的某些字段
(user_pin)?+.+就是不需要user_pin字段,属于高阶用法

insert overwrite table user_table partition(dt='2020-11-21')
select user_pin, a.`(dt)?+.+`, b.`(user_pin)?+.+`
from 
    user_table a
left join (
    select 
        user_pin, 
        concat_ws(';', collect_list(user_item_imp_cnt_30d)) as user_item_imp_cnt_30d,
        concat_ws(';', collect_list(user_item_imp_cnt_7d)) as user_item_imp_cnt_7d,
        concat_ws(';', collect_list(user_item_imp_cnt_3d)) as user_item_imp_cnt_3d,
        concat_ws(';', collect_list(user_item_click_cnt_30d)) as user_item_click_cnt_30d,
        concat_ws(';', collect_list(user_item_click_cnt_7d)) as user_item_click_cnt_7d,
        concat_ws(';', collect_list(user_item_click_cnt_3d)) as user_item_click_cnt_3d,
        concat_ws(';', collect_list(user_item_click_rate_30d)) as user_item_click_rate_30d,
        concat_ws(';', collect_list(user_item_click_rate_7d)) as user_item_click_rate_7d,
        concat_ws(';', collect_list(user_item_click_rate_3d)) as user_item_click_rate_3d,
        concat_ws(';', collect_list(user_item_click_days_30d)) as user_item_click_days_30d,
        concat_ws(';', collect_list(user_item_lst_click_days_30d)) as user_item_lst_click_days_30d
    from (
        select 
            user_pin,  
            concat(rescode, ':', user_item_imp_cnt_30d) as user_item_imp_cnt_30d,
            concat(rescode, ':', user_item_imp_cnt_7d) as user_item_imp_cnt_7d,
            concat(rescode, ':', user_item_imp_cnt_3d) as user_item_imp_cnt_3d,
            concat(rescode, ':', user_item_click_cnt_30d) as user_item_click_cnt_30d,
            concat(rescode, ':', user_item_click_cnt_7d) as user_item_click_cnt_7d,
            concat(rescode, ':', user_item_click_cnt_3d) as user_item_click_cnt_3d,
            concat(rescode, ':', user_item_click_rate_30d) as user_item_click_rate_30d,
            concat(rescode, ':', user_item_click_rate_7d) as user_item_click_rate_7d,
            concat(rescode, ':', user_item_click_rate_3d) as user_item_click_rate_3d,
            concat(rescode, ':', user_item_click_days_30d) as user_item_click_days_30d,
            concat(rescode, ':', user_item_lst_click_days_30d) as user_item_lst_click_days_30d
        from dmc_qm.dmcqm_lhmx_new_cms_recmd_user_item_fea_s_d
        where dt='2020-11-21'
    ) t
    group by user_pin
) b
on a.user_pin = b.user_pin and a.dt='2020-11-21'

2、将字符串拆成多列
select count(1) from (select explode(split(data, ‘,’)) from dmc_bc.dmcbc_ust_dmc_bc_bx_feed_rand_recall_result_s_d where dt=‘2020-12-06’) t
3、hive函数
https://www.cnblogs.com/end/archive/2012/06/18/2553682.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,那我可以为您提供一些学习Hive SQL的资源和建议。 1. 官方文档 首先,您可以参考Hive官方文档中关于Hive SQL的部分。官方文档提供了很详细的介绍和示例,可以帮助您快速入门。 链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual 2. 外部资源 除了官方文档,还有一些外部资源可以帮助您学习Hive SQL。以下是一些推荐的资源: - Hive Tutorial:这是一份比较全面的Hive教程,包括Hive SQL的基本语法、DDL、DML、函数等内容。链接:https://www.tutorialspoint.com/hive/index.htm - Hive Cheat Sheet:这是一份Hive SQL的速查表,可以帮助您快速查找Hive SQL的语法和用法。链接:https://www.edureka.co/blog/wp-content/uploads/2019/07/Hive-Cheat-Sheet.pdf - Hive Cookbook:这是一份Hive SQL的实战指南,通过一些常见的场景和问题,来帮助您深入理解Hive SQL的使用和优化。链接:https://www.oreilly.com/library/view/hive-cookbook/9781449328714/ 3. 实践项目 最后,我建议您通过实践项目来学习Hive SQL。通过实际操作,您可以更深入地了解Hive SQL的使用和优化技巧。以下是一些可以参考的实践项目: - Kaggle竞赛:Kaggle上有很多与Hive SQL相关的数据分析和数据挖掘竞赛,您可以参加这些竞赛来练习Hive SQL的使用。 - Github项目:Github上也有很多Hive SQL的开源项目,您可以参考这些项目来学习Hive SQL的最佳实践和优化技巧。 希望以上资源对您有所帮助,祝您学习愉快!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值