使用 sql 的 Databricks Windows 组
Posted
技术标签:
【中文标题】使用 sql 的 Databricks Windows 组【英文标题】:Databricks windows group by using sql 【发布时间】:2021-02-02 04:24:42 【问题描述】:我无法找到如何将 pyspark 窗口语句转换为等效的 SQL 格式。
例子:
eventsDF \
.groupBy(
"deviceId",
window("eventTime", "10 minutes", "5 minutes")) \
.count()
应该是这样的:
select window, deviceId, count(deviceId)
from events
group by window eventTime 10 minutes 5 minutes, deviceId
【问题讨论】:
我不确定 SQL 是否可以按照您提到的语法处理 group by。你现在的情况是什么?您是否收到任何错误或结果不同或...? 都是语法错误 【参考方案1】:您需要修复一些语法错误。 window
应该用括号括起来。
select
window(eventTime, '10 minutes', '5 minutes'),
deviceId,
count(deviceId)
from events
group by
window(eventTime, '10 minutes', '5 minutes'),
deviceId
【讨论】:
谢谢@mck,你知道有没有关于window
语法的文档吗?貌似官方文档不完整:spark.apache.org/docs/latest/api/sql/#window
@Emer 查看 pyspark 文档:spark.apache.org/docs/3.0.2/api/python/…【参考方案2】:
我认为以下查询的结果是您所期望的:
select deviceId, count(deviceId)
from events
group by `eventTime`, `10 minutes`, `5 minutes`, `deviceId`
group by
将在您期望的所有窗口上对行进行分组
【讨论】:
以上是关于使用 sql 的 Databricks Windows 组的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pyspark 将 SQL 查询从 DataBricks 发送到 SQL Server [重复]