apache-spark - Spark结构化流中的自定义窗口
问题描述
从卡夫卡,我正在消费这种格式的事件流:
{"ts": 0, "x": 2} # ts is the timestamp, a single digit for convenience, and x is an integer
每次总和x
大于时,我都想对行进行分组10
。例如,如果我有这个流:
{"ts": 0, "x": 2} {"ts": 1, "x": 9} {"ts": 2, "x": 2} {"ts": 3, "x": 8} {"ts": 4, "x": 10}
我想以这种方式对行进行分组:
{"ts": 0, "x": 2} {"ts": 1, "x": 9} # group 1
{"ts": 2, "x": 2} {"ts": 3, "x": 8} # group 2
{"ts": 4, "x": 10} # group 3
到目前为止,我已经设法覆盖时间戳(使用groupBy(window("ts", "5 minutes")
),但我不知道如何使用 pyspark 进行更多自定义操作。
额外的问题:如何简单地将传入事件分组为固定大小的事件块?
解决方案
推荐阅读
- database - 如何防止 pytest 更改数据库?
- laravel - 找不到指定的模块。))在第 0 行的未知中
- visual-studio-code - 如何使用 Monokai 语法高亮获取 VSCode 默认的深色主题
- docker - HTTPS 背后的 HTTP 网站 Let's Encrypt NGINX Route
- go - 未定义路线。如何解决这个问题呢
- jms - 如何在 Wildfly CLI 中检查 JMS 主题的订阅?
- php - 在 MySQL 中使用“IN”选择数据,使用多个表上的连接
- python - 有没有办法用一个 configfile.properties 创建多日志文件?
- linq - 使用 Entity Framework Core 复杂更新多行
- html - 我可以自定义网页的显示设置吗?