小标
2019-02-11
来源 :
阅读 13162
评论 0
摘要:本文主要向大家介绍了【云计算】Hive|用sort_array函数解决collet_list列表排序混乱问题,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】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为下单航段)
memberid | airways | legcount |
|---|---|---|
| 1 | A | 2 |
| 1 | B | 3 |
| 1 | C | 4 |
| 1 | D | 1 |
| 1 | E | 8 |
运行结果:
memberid | hs |
|---|---|
| 1 | D-A-B-C-E |
sort_array好像不能降序排列,如果要倒序排的话在子查询里新增一个辅助列来排序即可。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
喜欢 | 0
不喜欢 | 4
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号