【发布时间】:2015-08-16 04:48:19
【问题描述】:
基本上,我有一个包含一系列事件(带有一些 categoryId)的 RDD/DataFrame。它们带有时间戳并按时间排序。 我想做的是扫描每个类别中的所有这些事件,同时保持/更新一些状态,该状态会记住是否看到了某些事件。一些例子:
- 用户登录亚马逊(记录新的会话 ID、时间戳)
- 用户将商品添加到 basked(将篮子大小增加到 1)
- 用户执行结账(增加花费的金额,输出 rdd add item: sessionId+start_timestamp+number if items + money)
- 用户将其他东西添加到购物篮中
- 执行结帐 -> 将下一项添加到输出 rdd
我非常想用一个有状态的映射器(它记住以前的项目)来做一个 flatMap。映射器可以有一个按 categoryId 的“状态”映射。但是有几百万个类别是什么?除了按类别+时间戳排序之外,还有什么更好的方法吗? 我还需要确保整个类别都在一个节点上。在这种情况下我应该按类别划分吗?我不确定数百万个分区是否是个好主意。
【问题讨论】:
标签: apache-spark rdd