Apache spark sparksql中如何用SQL表示时间窗口函数

Apache spark sparksql中如何用SQL表示时间窗口函数,apache-spark,Apache Spark,我有一个简单的数据帧,其模式是: word: string process_time: timestamp 我在时间窗口前分组,并在分组的数据帧上计数: val windowedCount = wordsDs .groupBy( window($"processing_time", "15 seconds") ).count() 如何使用Spark SQL的语法将此代码移植到SQL?这几乎是一对一的翻译: spark.sql("""SELECT window(process_

我有一个简单的
数据帧
,其模式是:

word: string
process_time: timestamp
我在时间窗口前分组,并在分组的数据帧上计数:

val windowedCount = wordsDs
  .groupBy(
    window($"processing_time", "15 seconds")
  ).count()

如何使用Spark SQL的语法将此代码移植到SQL?

这几乎是一对一的翻译:

spark.sql("""SELECT window(process_time, "15 seconds"), count(*) 
             FROM wordDs 
             GROUP BY window(process_time, "15 seconds")""")
或:

spark.sql("""WITH tmp AS(SELECT window(process_time, "15 seconds") w FROM wordDs)
             SELECT w, count(*) FROM tmp GROUP BY w""")