gpt4 book ai didi

java - hadoop hive 并发计数

转载 作者:行者123 更新时间:2023-12-02 21:54:11 24 4
gpt4 key购买 nike

如何在hadoop中实现它?

在 hive 中,我有一个包含很多列的表,其中两个是 begin_time,end_time。

我需要计算每次的数字

一张 table 是这样的:

begin_time                  end_time
2011.04.26 10:19:06^A2011.04.26 10:20:22
2011.04.26 10:19:08^A2011.04.26 10:21:49
2011.04.26 10:19:08^A2011.04.26 11:18:46
2011.04.26 10:19:09^A2011.04.26 12:08:36
2011.04.26 10:19:09^A2011.04.26 11:00:16
2011.04.26 10:19:11^A2011.04.26 10:19:17
2011.04.26 10:19:12^A2011.04.26 10:46:21
2011.04.26 10:19:13^A2011.04.26 10:55:43
2011.04.26 10:19:17^A2011.04.26 10:19:41
2011.04.26 10:19:18^A2011.04.26 10:34:41

我想要的结果是在特定时间有多少人。

例如2011.04.26 10:19:08,类(class)有3位访客,19:06有1位,19:08有2位。

和 2011.04.26 10:19:18 是 9,当然是 10,但在 2011.04.26 10:19:17 离开

片的期望结果是
2011.04.26 10:19:06 1
2011.04.26 10:19:08 3
2011.04.26 10:19:09 5
2011.04.26 10:19:11 6
2011.04.26 10:19:12 7
2011.04.26 10:19:13 8
2011.04.26 10:19:17 9
2011.04.26 10:19:18 9

非常感谢和欢迎任何帮助。

最佳答案

您可以在 hive 上尝试此操作(假设表名为 test_log):

select /*+ MAPJOIN(driven) */ driven.time, count(*)    
from
(select time
from
(select begin_time time from test_log union all
select end_time time from test_log) u
group by time) driven
join test_log l on true
where
driven.time between l.begin_time and l.end_time
group by driven.time

可能不是最好的解决方案,但至少它有效。
您可以在驱动子查询上添加一些过滤器以减少数据集。

关于java - hadoop hive 并发计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com