Не удается запустить команды записной книжки после отмены ячейки потоковой передачи

Проблема

После отмены запущенной ячейки потоковой передачи в записной книжке, прикрепленной к кластеру Databricks Runtime 5,0, вы не сможете выполнять последующие команды в записной книжке. Команды остались в состоянии "Ожидание запуска", поэтому необходимо очистить состояние записной книжки или отсоединить и повторно подключить кластер, прежде чем можно будет успешно выполнять команды в записной книжке.

Обратите внимание, что эта проблема возникает только при отмене одной ячейки. Он не применяется при выполнении всех и отмене всех ячеек.

Версия

Эта проблема затрагивает кластеры Databricks Runtime 5,0. Он также влияет на кластеры Databricks Runtime 4,3, spark.databricks.chauffeur.enableIdleContextTracking для которых настроена конфигурация Spark true .

Причина

В Databricks Runtime 4,3 введена Необязательная функция контекста выполнения простоя, которая включена по умолчанию в Databricks Runtime 5,0, что позволяет контексту выполнения отследить последовательности выполнения потоковой передачи, чтобы определить, простаивает ли они. К сожалению, это привело к ошибке, которая приводит к тому, что базовый контекст выполнения остается в недопустимом состоянии при отмене ячейки потоковой передачи. Это предотвращает запуск дополнительных команд до тех пор, пока состояние записной книжки не будет сброшено. Это поведение характерно для интерактивных записных книжек и не влияет на задания.

Дополнительные сведения о контекстах выполнения простоя см. в разделе контексты выполнения.

Решение

Azure Databricks работает над устранением этой проблемы и выпуском обновления обслуживания для Databricks Runtime 5,0. Тем временем можно выполнить одно из следующих действий.

  • Чтобы исправить затронутую записную книжку без перезапуска кластера, перейдите в меню " очистить " записной книжки и выберите очистить состояние:

    нет альтернативного текста

  • Если перезапуск кластера приемлем, проблему можно решить, отключив отслеживание контекста простоя. Задайте следующее значение конфигурации Spark в кластере:

    spark.databricks.chauffeur.enableIdleContextTracking false
    

    Затем перезапустите кластер.