用火花进行会话化

时间:2016-03-21 20:44:15

标签: apache-spark pyspark

我在spark中有一堆事件(用户点击/操作/按钮按下),其中以note列为特色:

>>> df.show(20)
+-------+-------------+------------+------+
|   user|    timestamp|        note|action|
+-------+-------------+------------+------+
|2376466|1458580817381|event #1 ...|UPDATE|
|2376466|1458580822034|event #1 ...|UPDATE|
|2376466|1458580822112|event #2 ...|UPDATE|
|2376466|1458580822166|event #2 ...|UPDATE|
|2376466|1458580822216|event #2 ...|UPDATE|
|2376466|1458580822225|event #2 ...|UPDATE|
|2376466|1458580822651|event #1 ...|UPDATE|
|2376466|1458580822660|event #1 ...|UPDATE|
+-------+-------------+------------+------+

我想知道特定note的“会话”的持续时间。例如,事件#2从1458580822112开始,到1458580822225结束,因此持续时间为..225 - ..112 = 113毫秒。是否有任何火花帮助器或快捷方式将数据组织成“”会话“或其他方式来提取这样的信息?或者想法是继续向每一行添加其他状态信息并在会话标识符列准备就绪时将其向上滚动?

注意:同一类型的多个音符应被视为单独的会话。

1 个答案:

答案 0 :(得分:2)

您可以使用Spark-SQL来实现目标。 这里有一些代码可以为我提供会话。 您可以编写辅助函数,然后将其注册为UDF。 然后可以在SQL语句中调用此UDF。

Option<String>

还可以查看完整的bluemix spark笔记本here: -

谢谢,

查尔斯。