Apache spark Spark结构化流媒体忽略旧记录
我是一个新的火花,并帮助我达成解决这个问题的办法。我正在接收输入文件,它包含有关发生事件的信息,并且文件本身具有时间戳值。事件Id是此输入的主列。参考下面的示例输入(实际文件有许多其他列) 当我们得到上面的输入时,我们需要根据事件id、时间戳和预期输出得到最新的记录Apache spark Spark结构化流媒体忽略旧记录,apache-spark,Apache Spark,我是一个新的火花,并帮助我达成解决这个问题的办法。我正在接收输入文件,它包含有关发生事件的信息,并且文件本身具有时间戳值。事件Id是此输入的主列。参考下面的示例输入(实际文件有许多其他列) 当我们得到上面的输入时,我们需要根据事件id、时间戳和预期输出得到最新的记录 Event_Id | Event_Timestamp 2 | 2018-10-11 13:25:01 1 | 2018-10-11 14:23:01 3 | 2018-10-11 20
Event_Id | Event_Timestamp
2 | 2018-10-11 13:25:01
1 | 2018-10-11 14:23:01
3 | 2018-10-11 20:12:01
此后,每当收到时间戳值小于我需要忽略的上述值的事件信息时,例如,考虑第二个输入
Event_Id | Event_Timestamp
2 | 2018-10-11 10:25:01
1 | 2018-10-11 08:23:01
3 | 2018-10-11 21:12:01
现在我需要忽略事件_id 1和2,因为它有旧的时间戳,表示我们现在拥有的状态。只传递事件3,此处的预期输出为
3 | 2018-10-11 21:12:01
假设我们有n个唯一(100亿)事件id,它将如何存储在spark内存中,是否需要注意一些问题
提前感谢我们可以使用max timestamp并使用persist()方法,只使用disk_或disk_only 2存储级别。。。在这种情况下,我们可以做到这一点,我认为。。。 由于它是一种流式数据,我们可以尝试使用仅内存或仅内存2个存储级别 请尝试并更新
3 | 2018-10-11 21:12:01