Как я могу запустить структурированное потоковое задание Spark в течение определенного времени?

#apache-spark #pyspark #databricks

Вопрос:

Я хочу планировать структурированную потоковую работу Spark каждый день. Само задание должно выполняться в течение определенного количества часов, а затем останавливаться. Итак, как я могу указать такую продолжительность времени?

Комментарии:

1. Вы хотите сделать это из самого потокового приложения? вы думали о том, чтобы, например, предоставить тайм-аут для задачи из планировщика (воздушного потока)? недостатком в этом случае является то, что выключение не будет изящным, но если вас это не волнует, это может быть простым решением.

2. Я могу использовать планировщик. Но не Воздушный поток, а блоки данных. Позорное выключение тоже нормально.

3. И в планировщике databricks нет возможности назначить время выполнения задачи?

4. Это так, вы можете разрешить тайм-аут задания для базы данных

Ответ №1:

Вам нужно запланировать задание с помощью планировщика databricks один раз в день, а затем в коде добавить тайм-аут для вашего запроса:

 query = (df.writeStream...)

  query.awaitTermination(timeoutInSeconds)
  query.stop()