Contextos de ejecución de cuadernos en Databricks

Al asociar un cuaderno a un clúster, Azure Databricks crea un contexto de ejecución. Un contexto de ejecución contiene el estado de un entorno de REPL para cada lenguaje de programación compatible: Python, R, Scala y SQL. Cuando se ejecuta una celda en un cuaderno, el comando se envía al entorno REPL de lenguaje adecuado y se ejecuta.

También puede usar la API de ejecución de comandos para crear un contexto de ejecución y enviar un comando para ejecutarlo en el contexto de ejecución. De forma similar, el comando se envía al entorno de REPL del lenguaje y se ejecuta.

Un clúster tiene un número máximo de contextos de ejecución (145). Una vez que el número de contextos de ejecución ha alcanzado este umbral, no puede asociar un cuaderno al clúster ni crear un nuevo contexto de ejecución.

Contextos de ejecución inactivos

Un contexto de ejecución se considera inactivo cuando la última ejecución completada se produjo después de un umbral de inactividad establecido. La última ejecución completada es la última vez que el cuaderno completó la ejecución de comandos. El umbral de inactividad es la cantidad de tiempo que debe pasar entre la última ejecución completada y cualquier intento de desasociación automática del cuaderno.

Cuando un clúster ha alcanzado el límite máximo de contexto, Azure Databricks elimina (expulsa) los contextos de ejecución inactivos (empezando por los que menos se han usado recientemente) según sea necesario. Incluso cuando se elimina un contexto, el cuaderno que lo usa se sigue asociando al clúster y aparece en la lista de cuadernos del clúster. Los cuadernos de streaming se consideran en ejecución activa y su contexto nunca se expulsa hasta que se detiene su ejecución. Si se expulsa un contexto inactivo, la interfaz de usuario muestra un mensaje que indica que el cuaderno que usaba el contexto se ha desasociado debido a su inactividad.

Notebook context evicted

Si intenta asociar un cuaderno al clúster que tiene el número máximo de contextos de ejecución y no hay contextos inactivos (o si está deshabilitada la expulsión automática), la interfaz de usuario muestra un mensaje que indica que se ha alcanzado el umbral de contextos de ejecución máximo actual y el cuaderno permanecerá en estado desasociado.

Notebook detached

Si bifurca un proceso, un contexto de ejecución inactivo se sigue considerando en ese estado cuando se devuelve la ejecución de la solicitud que bifurcó el proceso. No se recomienda la bifurcación de procesos independientes con Spark.

Configuración de la expulsión automática de contexto

La expulsión automática está habilitada de manera predeterminada. Para deshabilitar la expulsión automática de un clúster, configure la propiedad Sparkspark.databricks.chauffeur.enableIdleContextTracking false.

Determinación de la versión de Spark y Databricks Runtime

Para determinar la versión de Spark del clúster al que está asociado el cuaderno, ejecute:

spark.version

Para determinar la versión de Databricks Runtime del clúster al que está asociado el cuaderno, ejecute:

spark.conf.get("spark.databricks.clusterUsageTags.sparkVersion")

Nota:

Tanto esta etiqueta sparkVersion como la propiedad spark_version requerida por los puntos de conexión en la API de clústeres y la API de trabajos hacen referencia a la versión de Databricks Runtime, no a la versión de Spark.