#apache-spark #pyspark #databricks
Вопрос:
Я хочу планировать структурированную потоковую работу Spark каждый день. Само задание должно выполняться в течение определенного количества часов, а затем останавливаться. Итак, как я могу указать такую продолжительность времени?
Комментарии:
1. Вы хотите сделать это из самого потокового приложения? вы думали о том, чтобы, например, предоставить тайм-аут для задачи из планировщика (воздушного потока)? недостатком в этом случае является то, что выключение не будет изящным, но если вас это не волнует, это может быть простым решением.
2. Я могу использовать планировщик. Но не Воздушный поток, а блоки данных. Позорное выключение тоже нормально.
3. И в планировщике databricks нет возможности назначить время выполнения задачи?
4. Это так, вы можете разрешить тайм-аут задания для базы данных
Ответ №1:
Вам нужно запланировать задание с помощью планировщика databricks один раз в день, а затем в коде добавить тайм-аут для вашего запроса:
query = (df.writeStream...)
query.awaitTermination(timeoutInSeconds)
query.stop()