Python 通过中断时间戳将时间戳中断为会话

Python 通过中断时间戳将时间戳中断为会话,python,sql,hadoop,hive,Python,Sql,Hadoop,Hive,我有一些包含时间戳、id和操作的日志文件。下面是一些示例数据。实际数据有数百万行长。我希望将用户在给定会话中采取的所有操作分组。会话可以定义为来自特定用户的任何连续日志条目,其中前一个时间戳之间的间隔不超过30分钟 timestamp id action 2014-06-30 21:57:16 234 1 2014-06-30 16:47:05 793 3 2014-06-30 16:47:15 793 1 2014-06-30

我有一些包含时间戳、id和操作的日志文件。下面是一些示例数据。实际数据有数百万行长。我希望将用户在给定会话中采取的所有操作分组。会话可以定义为来自特定用户的任何连续日志条目,其中前一个时间戳之间的间隔不超过30分钟

timestamp             id    action
2014-06-30 21:57:16   234     1
2014-06-30 16:47:05   793     3
2014-06-30 16:47:15   793     1
2014-06-30 16:47:50   793     2
2014-06-30 16:48:07   793     5
2014-06-30 16:48:08   793     6
2014-06-30 16:48:48   793     7
2014-06-30 16:49:26   793     1
2014-06-30 16:49:28   993     3
2014-06-30 04:24:39   229     2
2014-06-30 21:53:38   822     4
我希望有人能给我指出正确的方向。我肯定以前做过,但在网上找不到任何东西。我想我在寻找错误的问题


正在寻找基于SQL的东西。

我本来打算写这篇文章,但很快就变得相当复杂,不幸的是我没有免费工作:。我可以向你解释你要做什么

基本上,您需要从ID列中选择一个唯一值列表,我假设这些值是用户ID。然后,您需要逐个循环遍历ID列表,并为每个ID选择与该ID对应的时间戳列表,按升序排列


然后,您需要选择最早的时间戳,并将其与升序列表中的下一个时间戳进行比较,以查看下一个时间戳是否相差<或>30分钟。如果您使用的是SQL Server、microsoft、MySQL或其他软件,我实际上使用的是Hadoop。所以,蜂箱/猪/流。但是,如果需要,我可以将部分日志放入Teradata.Yikes。我希望你会说SQL Server在SQL Server领域,您可能可以使用聚合函数来做一些事情,而且不会太复杂。我想我应该仔细看看你的标签!嗯,我想我现在知道该找什么了。看起来这被称为会话化。如果你在谷歌上搜索SessionizeWebLogPig,看起来会有一些文章。一旦我弄明白了,我会发布一个答案。