Я уже задавал этот вопрос несколько месяцев назад, но я спрошу еще раз, чтобы быть уверенным на 100%, и опишу свою проблему здесь:
У меня есть тема потоковой передачи, которую я собираю каждую минуту с помощью скользящего окна в Spark Structured Streaming.
Например, с окном в 30 минут, скользящим каждую минуту, мы можем сказать, что я уже делаю какую-то движущуюся статистику. Я не только вычисляю каждую минуту независимо, но и принимаю во внимание последние 29 минут, и отсюда перемещаю окно агрегации каждую минуту.
Но есть ли способ вычислений в реальном времени с помощью Spark Structured Streaming:
Изменение с течением времени:
Скорость изменения:
Рост/распад:
Например, каждую минуту я вычисляю среднее значение, которое будет равно . С помощью этих формул я мог бы сравнивать изменение моего среднего значения каждую минуту в моем скользящем окне:
+------------+-----------+
| 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