Administración de bibliotecas de Apache Spark en Microsoft Fabric
Una biblioteca es una colección de código previamente escrito que los desarrolladores pueden importar para proporcionar funcionalidad. El uso de bibliotecas permite ahorrar tiempo y esfuerzo al no tener que escribir código desde cero para realizar tareas comunes. En su lugar, se importa la biblioteca y se utilizan sus funciones y clases para conseguir la funcionalidad deseada. Microsoft Fabric proporciona múltiples mecanismos para ayudarle a administrar y usar bibliotecas.
- Bibliotecas integradas: cada entorno de ejecución de Fabric Spark proporciona un amplio conjunto de bibliotecas preinstaladas populares. Encontrará la lista completa de bibliotecas integradas en Fabric Spark Runtime.
- Bibliotecas públicas: las bibliotecas públicas se obtienen de repositorios como PyPI o Conda, que se admiten actualmente.
- Bibliotecas personalizadas: las bibliotecas personalizadas se refieren al código que usted o su organización crean. Fabric admite los formatos .whl, .jar, and .tar.gz. Fabric solo admite archivos .tar.gz para el lenguaje R. Para las bibliotecas personalizadas de Python, use el formato .whl.
Administración de bibliotecas en la configuración del área de trabajo
Importante
Ya no se admite la administración de bibliotecas en la configuración del área de trabajo. Para migrar las bibliotecas del área de trabajo y las propiedades de Spark a un entorno predeterminado, consulte Migrar las bibliotecas del área de trabajo y las propiedades de Spark.
Resumen de los procedimientos recomendados de administración de bibliotecas
En los escenarios siguientes se describen los procedimientos recomendados.
Escenario 1: el administrador establece bibliotecas predeterminadas para el área de trabajo
Para establecer bibliotecas predeterminadas, debe ser el administrador del área de trabajo. Como administrador, puede realizar estas tareas:
- Crear un nuevo entorno
- Instalar las bibliotecas necesarias en el entorno
- Adjuntar este entorno como área de trabajo predeterminada
Los cuadernos y las definiciones de trabajo de Spark en el área de trabajo se adjuntan a la configuración del área de trabajo. Inician sesiones con las bibliotecas instaladas en el entorno predeterminado del área de trabajo.
Escenario 2: conservar especificaciones de biblioteca para uno o varios elementos de código
Si quiere mantener las especificaciones de las bibliotecas, instálelas en un entorno y adjúntelas a los elementos de código.
Una ventaja de este enfoque es que ahorra el esfuerzo de ejecutar el código que requiere bibliotecas comunes todo el tiempo. Una vez instaladas correctamente en el entorno, las bibliotecas son efectivas en todas las sesiones de Spark si se adjunta el entorno.
Otra ventaja es que el enfoque admite una granularidad de configuración de bibliotecas inferior al nivel del área de trabajo. Un entorno se puede asociar a varios artefactos de código. Si tiene un subconjunto de cuadernos o definiciones de trabajos de Spark en un área de trabajo que requiere las mismas bibliotecas, asócielas al mismo entorno. Un administrador, miembro o colaborador del área de trabajo puede crear, editar y adjuntar el entorno.
Escenario 3: instalación en línea en ejecución interactiva
Si está interesado en el uso único, dentro de un cuaderno interactivo, de una biblioteca que no está instalada, la instalación en línea es la opción más conveniente. Los comandos en línea en Fabric le permiten hacer efectiva la biblioteca en la sesión Spark del cuaderno actual. La biblioteca no se conserva en distintas sesiones.
Los usuarios que tienen permiso para ejecutar el cuaderno pueden instalar otras bibliotecas en la sesión Spark.
Resumen de los tipos de biblioteca admitidos
Tipo de biblioteca | Administración de bibliotecas de entorno | Instalación en línea |
---|---|---|
Python público (PyPI y Conda) | Compatible | Compatible |
Python personalizado (.whl) | Compatible | Compatible |
R público (CRAN) | No compatible | Compatible |
R personalizado (.tar.gz) | Compatible | Compatible |
Jar | Se admite como biblioteca personalizada | No compatible |
Importante
Actualmente existen limitaciones en la biblioteca .jar.
- Para los usuarios de Scala, el archivo .jar se puede instalar correctamente en un entorno, pero no es eficaz para sus sesiones Spark/Scala. La instalación invalida la biblioteca integrada con una biblioteca diferente. El nuevo .jar funciona en las sesiones.
- En el caso de los usuarios de Python, actualmente no se admiten todos los archivos .jar en un entorno. Pueden instalarse correctamente en un entorno, pero no son eficaces en las sesiones de PySpark.
- En su lugar, puedes instalar los archivos .jar a nivel de sesión de cuaderno.
Instalación en línea
Los comandos insertados admiten las bibliotecas de Python y de R.
Instalación en línea de Python
El intérprete de Python se reinicia para aplicar el cambio de bibliotecas. Cualquier variable definida antes de ejecutar la celda de comandos se pierde. Le recomendamos que ponga todos los comandos para agregar, eliminar o actualizar paquetes de Python al principio de su cuaderno.
Los comandos insertados para administrar bibliotecas de Python están deshabilitados de forma predeterminada en la ejecución de canalización de cuadernos. Si deseas habilitar %pip install
para la canalización, agrega «_inlineInstallationEnabled» como un parámetro booleano que equivale a True en los parámetros de actividad del cuaderno.
Nota:
%pip install
puede dar lugar a resultados incoherentes de vez en cuando. Se recomienda instalar la biblioteca en un entorno y usarla en la canalización.
En las ejecuciones de referencia de cuadernos, no se admiten comandos insertados para administrar bibliotecas de Python. Para garantizar la corrección de la ejecución, se recomienda quitar estos comandos insertados del cuaderno al que se hace referencia.
Se recomienda %pip
en lugar de !pip
. !pip
es un comando de shell integrado de IPython que tiene las siguientes limitaciones:
!pip
solo instala un paquete en el nodo controlador, no en los nodos ejecutores.- Los paquetes que se instalan a través de
!pip
no afectan a los conflictos con paquetes incorporados o si los paquetes ya están importados en un cuaderno.
Sin embargo, %pip
controla estos escenarios. Las bibliotecas instaladas a través de %pip
están disponibles tanto en el nodo controlador como en el nodo ejecutor y siguen siendo efectivas incluso si la biblioteca ya está importada.
Sugerencia
El comando %conda install
suele tardar más que el comando %pip install
en instalar nuevas bibliotecas Python. Verifica todas las dependencias y resuelve los conflictos.
Puede que quiera usar %conda install
para mayor fiabilidad y estabilidad. Puede usar %pip install
si está seguro de que la biblioteca que desea instalar no entra en conflicto con las bibliotecas preinstaladas en el entorno de tiempo de ejecución.
Para todos los comandos en línea de Python disponibles y aclaraciones, consulte comandos %pip y comandos %conda.
Administración de bibliotecas públicas de Python mediante la instalación en línea
En este ejemplo, se muestra cómo usar comandos en línea para administrar bibliotecas. Supongamos que quiere usar altair, una biblioteca de visualización eficaz para Python, para una exploración de datos única. Supongamos que la biblioteca no está instalada en el área de trabajo. El siguiente ejemplo usa comandos conda para ilustrar los pasos.
Puede usar comandos en línea para habilitar altair en la sesión del cuaderno sin afectar a otras sesiones del cuaderno u otros elementos.
Ejecute los siguientes comandos en una celda de código del cuaderno. El primer comando instala la biblioteca altair. Además, instala vega_datasets, que contiene un modelo semántico que se puede usar para visualizar.
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
La salida de la celda indica el resultado de la instalación.
Importa el paquete y el modelo semántico ejecutando el siguiente código en otra celda del cuaderno.
import altair as alt from vega_datasets import data
Ahora puede usar la biblioteca altair con ámbito de sesión.
# load a simple dataset as a pandas DataFrame cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', ).interactive()
Administración de bibliotecas personalizadas de Python mediante la instalación en línea
Puede cargar las bibliotecas personalizadas de Python en la carpeta Archivo de la instancia de Lakehouse conectada al cuaderno. Vaya a lakehouse, seleccione el icono ... en la carpeta Archivo y cargue la biblioteca personalizada.
Después de la carga, use el siguiente comando para instalar la biblioteca personalizada en la sesión de cuaderno.
# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl
Instalación en línea de R
Para administrar bibliotecas R, Fabric admite los comandos install.packages()
, remove.packages()
y devtools::
. Para todos los comandos R en línea disponibles y aclaraciones, consulte el comando install. packages y el comando remove.package.
Administración de bibliotecas públicas de R a través de la instalación en línea
Siga este ejemplo para recorrer los pasos de instalación de una biblioteca pública de R.
Para instalar una biblioteca de fuentes de R:
Cambie el lenguaje de trabajo a SparkR (R) en la cinta de opciones del cuaderno.
Instale la biblioteca caesar ejecutando el comando siguiente en una celda del cuaderno.
install.packages("caesar")
Ahora puede experimentar con la biblioteca de caesar con ámbito de sesión con un trabajo de Spark.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
Administración de bibliotecas Jar a través de la instalación en línea
Los archivos .jar son compatibles con las sesiones del cuaderno con el siguiente comando.
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
La celda de código usa el almacenamiento de Lakehouse como ejemplo. En el explorador de cuaderno, puede copiar el archivo completo ABFS ruta y reemplazar en el código.