首页 > 解决方案 > 在scala spark中的滚动窗口上计算共现矩阵的最佳方法

问题描述

我有一个非常大的数据集,其中包含“user_id”、“event_id”和“event_date”。

scala spark中最有效的方法是计算事件的共现矩阵,只有在特定客户的n天窗口内才计算共现?

用户身份 event_id 日期
1 100 2000 年 1 月 1 日
1 101 05/01/2000
1 102 14/05/2021
1 103 2021 年 5 月 20 日
2 100 04/06/2001
2 101 2001 年 10 月 6 日
2 102 13/08/2021
2 103 2021 年 8 月 30 日

因此,如果我们考虑 15 天的窗口,对于每个用户,我们会获得以下共现:

用户身份 event_id_1 event_id_2
1 100 101
1 102 103
2 100 101

因此,最后共现的总数:

event_id_1 event_id_2 数数
100 101 2
102 103 1

这就是我需要在 Scala Spark 中运行的过程。有什么建议吗?提前谢谢了

标签: scalaapache-sparkapache-spark-sql

解决方案


推荐阅读