Aislamiento de cuadernos

El aislamiento del cuaderno hace referencia a la visibilidad de variables y clases entre cuadernos. Azure Databricks admite dos tipos de aislamiento:

  • Aislamiento de variables y clases
  • Aislamiento de sesión de Spark

Nota:

Azure Databricks administra el aislamiento de usuario mediante modos de acceso configurados en clústeres.

  • Sin aislamiento compartido: varios usuarios pueden usar el mismo clúster. Los usuarios comparten credenciales que se establecen en el nivel de clúster. No se aplican controles de acceso a datos.
  • Usuario único: solo el usuario designado puede usar el clúster. Todos los comandos se ejecutan con los privilegios de ese usuario. No se aplican las ACL de tabla en el metastore de Hive. Este modo de acceso admite Unity Catalog.
  • Compartido: varios usuarios pueden usar el mismo clúster. Los usuarios están totalmente aislados entre sí y cada usuario ejecuta comandos con sus propios privilegios. No se aplican las ACL de tabla en el metastore de Hive. Este modo de acceso admite Unity Catalog.

Aislamiento de variables y clases

Las variables y clases solo están disponibles en el cuaderno actual. Por ejemplo, dos cuadernos asociados al mismo clúster pueden definir variables y clases con el mismo nombre, pero estos objetos son distintos.

Para definir una clase que sea visible para todos los cuadernos asociados al mismo clúster, defina la clase en una celda de paquete. A continuación, puede acceder a la clase mediante su nombre completo, que es lo mismo que acceder a una clase en una biblioteca adjunta de Scala o Java.

Aislamiento de sesión de Spark

Todos los cuadernos conectados a un clúster tienen una variable predefinida llamada spark que representa a un elemento SparkSession. SparkSession es el punto de entrada para usar las API de Spark, así como para establecer configuraciones en tiempo de ejecución.

El aislamiento de sesión de Spark está habilitado de manera predeterminada. También puede usar vistas temporales globales para compartir vistas temporales entre cuadernos. Consulte CREATE VIEW. Para deshabilitar el aislamiento de sesión de Spark, establezca spark.databricks.session.share en true en la configuración de Spark.

Importante

Al establecer spark.databricks.session.share en true, se interrumpe la supervisión que usan las celdas de cuadernos de streaming y los trabajos de streaming. Concretamente:

  • No se muestran los grafos de las celdas de streaming.
  • Los trabajos no se bloquean mientras se ejecuta una secuencia (simplemente finalizan "correctamente", deteniendo la secuencia).
  • No se supervisa la terminación de las secuencias de los trabajos. En su lugar, debe llamar manualmente a awaitTermination().
  • La llamada a Crear una nueva visualización en DataFrames en streaming no funciona.

Las celdas que desencadenan comandos en otros lenguajes (es decir, las celdas que usan %scala, %python, %r y %sql) y las celdas que incluyen otros cuadernos (es decir, las celdas que usan %run) forman parte del cuaderno actual. Por lo tanto, estas celdas están en la misma sesión que las otras celdas del cuaderno. Por el contrario, un flujo de trabajo de cuaderno ejecuta un cuaderno con un elemento SparkSession aislado, lo que significa que las vistas temporales definidas en este tipo de cuadernos no son visibles en otros cuadernos.