Я использую Spark 2.1 и пытаюсь аккуратно остановить потоковый запрос.
StreamingQuery.stop()
изящная остановка, потому что я не видел подробной информации об этом методе в документация:
void stop()
Останавливает выполнение этого запроса, если он выполняется. Этот метод блокируется до тех пор, пока выполняющиеся потоки не остановятся. Начиная с: 2.0.0
В то время как в прошлом мире потоковой передачи (DStreams) существует опция остановки выполнения потоков с возможностью обеспечения обработки всех полученных данных:
def stop(stopSparkContext: Boolean, stopGracefully: Boolean): Unit
Остановить выполнение потоков с возможностью убедиться, что все полученные данные были обработаны.
stopSparkContext
, если true, останавливает связанный SparkContext. Базовый SparkContext будет остановлен независимо от того, был ли запущен этот StreamingContext.
stopGracefully
если истина, плавно останавливается, ожидая завершения обработки всех полученных данных.
Итак, вопрос в том, как изящно остановить структурированный потоковый запрос?