[Fabric] Entornos y librerías de código para tus notebooks

Desde sus inicios, Fabric, ha contado con capacidades varias para su código. Entre ellas, la instalación o delimitación de librerías o paquetes personalizados. Podían configurarse desde notebooks o por código. Sin embargo, todo eso fue cambiando hasta llegar a la versión definitiva que conocemos hoy.

En este artículo hablaremos de entornos o environments para conocer como trabajar en notebooks con librerías propias y que otras configuraciones contiene.

Comencemos como nos gusta hacer en LaDataWeb. Veamos la definición de libro, es decir, la que Microsoft dice de su componente:

"El entorno de Microsoft Fabric es un elemento consolidado para toda la configuración de hardware y software. En un entorno puede seleccionar tiempos de ejecución de Spark diferentes, configurar los recursos de proceso, instalar bibliotecas desde repositorios públicos o directorios locales, etc."

Dicho de otro modo, nos permite crear un entorno que combina librerías, archivos y configuraciones de clusters de spark para reutilizarlo en los notebooks de un área de trabajo.

¿Por qué haríamos esto? tal vez necesitamos compartir un archivo en el equipo de desarrollo de librerías o cadenas de código. Puede que conozcamos una librería que resuelve nuestro problema y no esta por defecto. Podríamos necesitar modificar los cómputos de spark para corridas especificas. Éstas y muchas más podrían ser las razones que nos lleven a crear un entorno.

Crear entorno

Podemos ir al hub de creación donde salen todos los items y buscar "Environments".

Luego de seleccionarlo basta con poner un nombre.

En mi caso voy a agregar una librería de python que existe en PyPi y necesito para correr mi código. Esto creará un ítem nuevo en nuestra área de trabajo del tipo entorno. Al abrirlo nos encontramos con lo siguiente:

Aquí podemos identificar fácilmente lo que nos mencionaba la definición:

  1. Librerías: Aquí podremos ver el listado de librerías que contiene Fabric para cada lenguaje detrás de spark, como lo es java (scala), python o R, como así también agregar librerías provenientes de fuentes conocidas como PyPi o propias importando archivos como .whl de paquetes de python.
  2. Cómputos spark: en este apartado podremos habilitar un motor de ejecución nativa. Agregar propiedades de spark manualmente con UI. Configurar el pool de spark y detalles de cambios como core, memory, executor core, executor memory y executor instances. Cabe aclarar que la libertad de configuración para el cómputo la delimita el admin del área de trabajo, admin de la capacidad o admin del tenant. Dependerá que permisos fueron delegados.
  3. Recursos: facilita la capacidad de administrar recursos pequeños durante la fase de desarrollo. Los recursos del entorno de Fabric proporcionan un sistema de archivos que le permite administrar los archivos y las carpetas para compartir. Podríamos dejar un .whl para que sea de acceso y descarga en caso de que otro usuario quiera usarlo en otro entorno.

Nosotros nos enfocaremos en cargar una librería nueva. Entonces daremos click en "Add from PyPI". En la pantalla saldrá un menú desplegable. No se asusten si no ven la librería. Escriban su nombre y si es detectada verán que automáticamente se completa la última versión.

En caso que dejen el proceso a la mitad y tengan que cortar, existe el botón "guardar". Sin embargo, para que el cambio sea efectivo y pueda comenzar a utilizarlas, hay que "publicar". Este proceso toma tiempo. En mi caso, tomó un poco menos de 10 minutos en un F2 para solo esa librería. Quedará una notificación corriendo así:

Cuando el proceso termine, podrán ir a su notebook. Elegir el tipo de notebook en la modalidad de spark que usen, en mi caso pyspark. Al lado verán el botón para seleccionar su entorno. Esto bastaría para que funcione:

Consideraciones

Los entornos son un ítem de Fabric más del área de trabajo. Por lo tanto, se pueden compartir igual que todos los demás. Bajo permisos de lectura, re compartir y escritura. La lectura permite ver la configuración y utilizar el entorno. Re compartir lo dicen las palabras. Escritura permitirá editar la configuración además de usarlo.

Adicionalmente a notebook, los entornos puede ser delimitado para Spark Jobs.

Los entornos pueden configurarse para ser elegidos por defecto en los notebooks o spark jobs del área de trabajo. Basta con ir a las configuraciones del área de trabajo en el aparatado de ingeniería de datos / configuración de spark y seleccionar el entorno por defecto.

Los entornos funcionan para backgrounds de spark. Esto significa que un notebook de python, al día 30 de julio del 2025 no puede utilizar uno de estos entornos.