apache-spark - Spark Structured Streaming 基于时间戳的窗口聚合输出 - 为什么不按时间排序?
问题描述
假设我df
在 Spark Structured Streaming 中有一个简单的数据框,其中包含两列:一列是时间戳字段time
,另一列a
是 double 类型。如果我运行查询,例如
result = df.groupBy(window('time', 10 seconds, 1 second)).agg(mean('a'))
我的输出数据帧result
相对于窗口的开始时间是无序的(即,具有较晚开始时间的窗口将比具有较早开始时间的窗口出现在输出表中更早),即使我的输入流df
按time
. 这是为什么?当然,我可以使用附加orderBy
条款强制排序:
result = df.groupBy(window('time', 10 seconds, 1 second)).agg(mean('a')).orderBy('window.start')
但我想知道为什么默认情况下,考虑到输入是有序的,在计算过程中排序会混淆?
解决方案
推荐阅读
- python - 类集中的“__and__”和“__rand__”有什么区别?
- php - Laravel 5.8 上传图片
- azure - 确定从第三方组织的 Azure Active Directory 租约中删除的用户是否无效
- mongoose - 索引的未设置字段使:E11000 重复键错误集合
- flutter - 如何阅读未来
小路? - python - 给定索引列表,如何在没有 for 循环的情况下进行多次添加操作?
- reactjs - Standard way of reconnecting to webSocket server in redux-Saga?
- android - 如何从服务器应用程序获取通知到客户端应用程序?
- shell - 使用 check_mk 监控本地端口的脚本
- python - 我在 matplotlib 文档上找不到类/属性