首页 > 解决方案 > 如何在结构化流中使用任意状态处理对流查询进行重复数据删除?

问题描述

我正在使用 Spark执行任意有状态流处理。该用例涉及识别用户会话(基于特定 ID,例如session_id,因此 1 个会话的所有用户活动事件都将具有相同的session_id)、跟踪会话的进度(进行中或已完成)等。另外,我的使用案例涉及根据某些字段识别重复会话(其中不包括 ID,因此重复会话的 session_id 不同)。

现在,我使用 Spark Structured Streaming 的 flatMapGroupsWithState,使用session_id作为 grouping_key 进行处理。但我无法弄清楚如何识别重复项和执行重复数据删除,因为它涉及的字段与用于识别会话的字段不同。我会认为后一种尝试是有效的,并认为旧的尝试是重复的。

标签: apache-sparkspark-structured-streaming

解决方案


推荐阅读