SparkSQL: интервалы больше месяца не поддерживаются (1 месяц) - PullRequest
0 голосов
/ 29 октября 2018

Я использую «Временное окно в 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)

1 Ответ

0 голосов
/ 29 октября 2018

Поскольку интервалы, превышающие один месяц, неоднозначны, их следует выражать в более точных единицах. Это означает, что вы должны заменить

window(rawdataDS.col("date_time_epoch"),"1 month")

с

window(rawdataDS.col("date_time_epoch"),"30 days")

или любое другое значение, которое вы считаете месяцем.

Ссылка Максимальный интервал для o.a.s.sql.functions.window в списке разработчиков Apache Spark .

Если вы хотите суммировать свои данные за календарный месяц, window вам не пригодится. Вместо этого вы должны использовать одно из следующих:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...