Spark структурированный поток показывает результаты слишком поздно, когда в режиме добавления - PullRequest
0 голосов
/ 23 октября 2018

В документации по https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#handling-late-data-and-watermarking, показан пример с окном 10 минут, водяным знаком 10 минут и триггером 5 минут.

На диаграмме при использовании APPENDВ режиме первые результаты из окна 12: 00: 00-> 12:10:00 отображаются только в 12:25:00.Причина в том, что в то время водяной знак находится в 12:11:00, поэтому все окна до 12:11:00 уже могут быть отправлены на слив.

Однако в 12:20:00 мы ужезнаю, что водяной знак 12:11:00.Так почему же первое окно не отправляется в 12:20:00 вместо 12: 25: 00?

1 Ответ

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

Поскольку Spark применяет глобальный водяной знак вместо водяного знака для каждого раздела: водяной знак для следующего пакета определяется, когда задачи в текущем пакете «заканчиваются».Каждый раздел не знает, как определить водяной знак: он знает только о событиях в своем разделе.

Итак, в 12:20 Spark получает 12:21:00 и обрабатывает его, а в конце пакета,Spark собирает метку времени событий и определяет максимальную метку времени и определяет водяной знак для следующей партии - «12:11:00», который будет водяным знаком для партии 12: 25: 00.

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