Я использую «Временное окно в Spark SQL» для агрегирования данных временных рядов за различные интервалы времени.
edit: уточнить, что «Time window» отличается от «window window в SparkSQL»
ref: https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-Expression-TimeWindow.html
Но, похоже, поддерживается максимум до месяца.
Какой способ агрегирования интервалов, таких как «месяц», «квартал», «год»
val tumblingWindowrawdataDS = rawdataDS
.groupBy(window(rawdataDS.col("date_time_epoch"),"1 month"))
.agg(sum("value").as("monthly_value"))
tumblingWindowrawdataDS.sort("window.start").show(10,false)
ошибка:
Exception in thread "main" java.lang.IllegalArgumentException: Intervals greater than a month is not supported (1 month).
at org.apache.spark.sql.catalyst.expressions.TimeWindow$.getIntervalInMicroSeconds(TimeWindow.scala:124)
at org.apache.spark.sql.catalyst.expressions.TimeWindow$.apply(TimeWindow.scala:148)
at org.apache.spark.sql.functions$.window(functions.scala:2891)
at org.apache.spark.sql.functions$.window(functions.scala:2975)
at analytics.spark.TimeWindowExample$.main(TimeWindowExample.scala:53)
at analytics.spark.TimeWindowExample.main(TimeWindowExample.scala)