apache-spark - 如何在结构化流中使用任意状态处理对流查询进行重复数据删除?
问题描述
我正在使用 Spark执行任意有状态流处理。该用例涉及识别用户会话(基于特定 ID,例如session_id,因此 1 个会话的所有用户活动事件都将具有相同的session_id)、跟踪会话的进度(进行中或已完成)等。另外,我的使用案例涉及根据某些字段识别重复会话(其中不包括 ID,因此重复会话的 session_id 不同)。
现在,我使用 Spark Structured Streaming 的 flatMapGroupsWithState,使用session_id作为 grouping_key 进行处理。但我无法弄清楚如何识别重复项和执行重复数据删除,因为它涉及的字段与用于识别会话的字段不同。我会认为后一种尝试是有效的,并认为旧的尝试是重复的。
解决方案
推荐阅读
- node.js - 无法使用 res.writeHead() 和 .end() 从节点服务器获取重定向响应
- python - Random.shuffle 出人意料地在循环内不起作用
- artifactory - 远程转到注册表到自托管的 Git 存储库(不是 Github/Gitlab/bitbucket)
- c# - Physics.OverlapSphere 未正确检测对撞机
- jquery - 如何使用 jQuery 选择第 m 个元素的第 n 个子元素
- typescript - 如何可靠地检测 TSLint 中的 TypeScript SyntaxKind?
- jquery - vue项目中如何安装jquery
- graph - Gremlin 获取存在连接它们的双向边的顶点
- javascript - 一个按钮运行一个功能,第二个按钮运行不同的功能,但前提是第一个功能运行
- amazon-web-services - AWS Step Functions 是否具有超时功能?