Расширенные агрегации в структурированной потоковой передаче

Я уже задавал этот вопрос несколько месяцев назад, но я спрошу еще раз, чтобы быть уверенным на 100%, и опишу свою проблему здесь:

У меня есть тема потоковой передачи, которую я собираю каждую минуту с помощью скользящего окна в Spark Structured Streaming.

Например, с окном в 30 минут, скользящим каждую минуту, мы можем сказать, что я уже делаю какую-то движущуюся статистику. Я не только вычисляю каждую минуту независимо, но и принимаю во внимание последние 29 минут, и отсюда перемещаю окно агрегации каждую минуту.

Но есть ли способ вычислений в реальном времени с помощью Spark Structured Streaming:

  • Изменение с течением времени: изменить

  • Скорость изменения: ставка

  • Рост/распад: рост

Например, каждую минуту я вычисляю среднее значение, которое будет равно rate. С помощью этих формул я мог бы сравнивать изменение моего среднего значения каждую минуту в моем скользящем окне:

+------------+-----------+
|   Window   |  Average  |
+------------+-----------+
|12:30-13:00 |     100   |
|12:31-13:01 |     103   |
|12:32-13:02 |     106   |
|12:33-13:03 |     111   |
+------------+-----------+

Для этого примера я хотел бы добавить новую функцию, которая будет ростом/падением моего среднего, но в реальном времени. В момент t я хочу иметь возможность вычислить рост моего среднего значения по сравнению с моим средним значением в момент t-1.

Спасибо за ваше понимание моей проблемы,

Хорошего дня.

PS: я нашел эти два сообщения, которые могут быть интересны, возможно, у людей в этом сообществе есть способ сделать это сейчас:

Потоковая передача PySpark: окно и преобразование

Как определить UDAF по событию -временные окна в PySpark 2.1.0


person tricky    schedule 06.03.2018    source источник
comment
Удалось ли вам рассчитать простое скользящее среднее для потоковой передачи в оконном режиме? Я борюсь с этим сам. stackoverflow.com/questions/51838194 /   -  person Avinash    schedule 22.08.2018
comment
Скользящее среднее довольно просто с помощью скользящего окна, но оно заставляет вас использовать Spark2 API, я не знаю насчет Spark1 API.   -  person tricky    schedule 22.08.2018