我是靠谱客的博主 文静高山,这篇文章主要介绍Hive | 用sort_array函数解决collet_list列表排序混乱问题,现在分享给大家,希望可以做个参考。

由collect_list形成的列表经过concat_ws拼接后顺序具有随机性,要保证列表有序只需要在生成列表后使用sort_array函数进行排序即可,示例如下:

SELECT 
    memberid,
    regexp_replace(
        concat_ws('-',
                    sort_array(
                                collect_list(
                                            concat_ws(':',cast(legcount as string),airways)
                                            )
                                )
                    ),'\d:','') hs
from 
(
select 1 as memberid,'A' as airways,2 as legcount
union ALL
select 1 as memberid,'B' as airways,3 as legcount
union ALL
select 1 as memberid,'C' as airways,4 as legcount
union ALL
select 1 as memberid,'D' as airways,1 as legcount
union ALL
select 1 as memberid,'E' as airways,8 as legcount
) as t
group by memberid;

构造数据(memberid为会员ID,airway为会员预定机票选择的航司,legcount为下单航段)

运行结果:

sort_array貌似不能降序排列,如果要倒序排的话在子查询里新增一个辅助列来排序即可。

最后

以上就是文静高山最近收集整理的关于Hive | 用sort_array函数解决collet_list列表排序混乱问题的全部内容,更多相关Hive内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部