Spark SQL DSL 中的窗口(固定、滑动等)和水印支持
Posted
技术标签:
【中文标题】Spark SQL DSL 中的窗口(固定、滑动等)和水印支持【英文标题】:Window (fixed, sliding, etc.) & watermark support in Spark SQL DSL 【发布时间】:2019-03-08 01:04:42 【问题描述】:Spark SQL(DSL 而非 API)是否支持结构化流中的窗口化功能? Flink 中类似的东西看起来像:
SELECT user, SUM(amount) FROM Orders GROUP BY TUMBLE(proctime,
INTERVAL '1' DAY), user
我在官方结构化流媒体网站上找到的唯一 SQL 示例如下,它不包含窗口功能示例:
df.createOrReplaceTempView("updates")
spark.sql("select count(*) from updates") // returns another streaming DF
【问题讨论】:
【参考方案1】:Spark 在 2.4 版本的结构化流中还没有通过 DSL 的窗口功能。版本。 Apache Flink 有这些,因为它使用Apache Calcite SQL 解析器,并且因为 Flink 正在推动 SQL 流式传输。
但是,此功能可能会在未来的版本中添加。
最佳
【讨论】:
感谢您的回复,但我认为您关于窗口支持的声明不是真的。 Spark 结构化流支持事件时间的窗口操作(参见此处:spark.apache.org/docs/latest/…)。此外,方解石中的窗口支持与数据流模型中的窗口功能不同。我更新了问题的标题以澄清这一点。 我知道你甚至有时间支持和窗口化,但关键是你不能像我所说的那样通过 SQL DSL 将这些操作表达为 Spark 2.4。对不起,如果我不清楚以上是关于Spark SQL DSL 中的窗口(固定、滑动等)和水印支持的主要内容,如果未能解决你的问题,请参考以下文章