在过去的 2 个月里,我一直在学习 Hive,但我无法弄清楚如何进行某些基于序列的查询。举个例子:
- 我有一个包含用户操作的巨大日志
- 每个用户操作都有一个日期字段,但由于来自不同机器的多个日志文件,显然可能不会按该顺序扫描
- 每个日志可以记录各种不同的事件。对于这个例子,我将它们表示为字母:A、B、C、D...
问题:我将如何编写一个询问“平均而言,事件 A 在 B 发生之前发生多少次”的查询?
我知道如何对用户进行分组,只取完成 A 和 B 的用户并平均 A 发生的数量,但是限制 B 的第一次出现似乎很困难。我想我实际上可以通过将 10 个左右看起来很讨厌的查询串在一起来做到这一点,但我想知道是否有一种我不知道的更简单的方法来做到这一点。
谢谢!