基本上我有一个RDD/DataFrame包含一系列事件(带有一些categoryId)。他们是时间戳,并按时间排序。 我想要做的是扫描每个类别中的所有事件,同时保持/更新某些状态,以记住是否发生了某些事件。一些示例:Spark - 如何使用有状态映射器对排序的RDD进行平面映射?
- 用户登录到亚马逊(记录新的会话ID,时间戳)
- 用户添加项目到晒(增量筐尺寸为1)
- 用户执行花了结账(增量资金,输出RDD新增项目:+的sessionId + start_timestamp
- 用户添加其他东西到篮下
- 进行结账号码,如果项目+花的钱) - >下一个项目添加到输出RDD
所以我非常想用一个有状态的映射器(它记住了以前的项目)做一个flatMap。该映射器可以通过categoryId具有“状态”的映射。但是,有几百万个类别呢?有没有比按类别+时间戳排序更好的方法? 我还需要确保整个类别位于单个节点上。在这种情况下,我应该按类别分区吗?我不确定是否有数百万个分区是好主意。
有道理。我想现在是升级到1.4的时候了。 – mabn