将行中的时差拆分为Hive中最接近的半小时

问题描述 投票:1回答:1

我想将行中的时差拆分为最接近的Hive半小时

以下是我打算实现的示例

User   Start_time            End_time              Duration
A      2020-05-05 06:45:00   2020-05-05 07:15:00   30
B      2020-05-05 10:15:00   2020-05-05 11:15:00   60


User   Start_time            End_time              Duration
A      2020-05-05 06:45:00   2020-05-05 07:00:00   15
A      2020-05-05 07:00:00   2020-05-05 07:15:00   15
B      2020-05-05 10:15:00   2020-05-05 10:30:00   15
B      2020-05-05 10:30:00   2020-05-05 11:00:00   30
B      2020-05-05 11:00:00   2020-05-05 11:15:00   15
hadoop hive timestamp intervals
1个回答
0
投票

计算floor(duration/30)所需的间隔数,然后使用lateral view posexplode(split(space(s.num_intervals),' '))生成行,请参见代码中的其他逻辑:

© www.soinside.com 2019 - 2024. All rights reserved.