标记分桶重排序问题一

本文介绍了一个使用HiveSQL解决分桶重排序的需求。需求是根据订单日期,当订单间隔超过一个月时,消费次数需要重新排序。通过标记事件(0或1),按用户分组累加字段值作为分桶ID,然后在每个桶内重新排序来实现。总结中强调了事件标记、桶内排序和分桶映射的重要性。
摘要由CSDN通过智能技术生成

需求

(1)需求描述

原始数据表如下:order

客人    订单日期    消费次数    距离上一笔间隔
A    2019/5/15    1    0
A    2019/5/16    2    1
A    2019/5/19    3    3
A    2019/6/20    4    32
A    2019/6/24    5    4
B    2019/5/20    1    0
B    2019/6/21    2    32
B    2019/6/22    3    1

按照一个人的订单日期从 1 开始排序,并计算下一笔订单距离上一笔订单间隔日期。

如果间隔日期超过一个月,则消费次数需要重新排序,请用 HiveSQL 进行实现?

结果表如下:

客人    订单日期    消费次数    距离上一笔间隔    间隔超过一个月消费次数重新排序
A    2019/5/15    1    0    1
A    2019/5/16    2    1    2
A    2019/5/19    3    3    3
A    2019/6/20    4    32    1
A    2019/6/24    5    4    2
B    2019/5/20    1    0    1
B    2019/6/21    2    32    1
B    2019/6/22    3    1    2

需求实现

(1)数据准备

A,2019-05-15,1,0
A,2019-05-16,2,1
A,2019-05-19,3,3
A,2019-06-20,4,32
A,2019-06-24,5,4
B,2019-05-20,1,0
B,2019-06-21,2,32
B,2019-06-22,3,1

(2)创建hive表

C
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值