Bibliotecas
Para que el código personalizado o de terceros esté disponible para los cuadernos y trabajos que se ejecutan en los clústeres, puede instalar una biblioteca. Las bibliotecas se pueden escribir en Python, Java, Scala y R. Puede cargar las bibliotecas de Python, Java y Scala y apuntar a paquetes externos que se encuentren en repositorios de PyPI, Maven y CRAN.
Azure Databricks incluye muchas bibliotecas comunes en Databricks Runtime. Para ver qué bibliotecas están incluidas en Databricks Runtime, consulte la subsección acerca del entorno del sistema de Notas de la versión de Databricks Runtime para su versión de Databricks Runtime.
Nota:
El soporte técnico de Microsoft ayuda a aislar y resolver problemas relacionados con las bibliotecas que Azure Databricks instala y mantiene. En el caso de componentes de terceros, incluidas las bibliotecas, Microsoft proporciona un soporte técnico comercialmente razonable que le ayudará a solucionar los problemas. El soporte técnico de Microsoft ayuda en todo lo posible y puede resolver el problema. En el caso de los conectores de código abierto y de los proyectos hospedados en Github, se recomienda registrar las incidencias en Github y realizar el seguimiento de las mismas. No se admiten los esfuerzos de desarrollo, como el sombreado de archivos JAR o la creación de bibliotecas de Python a través del proceso de envío de casos de soporte técnico estándar: requieren una involucración de la consultoría para que se resuelvan más rápidamente. El servicio de soporte técnico puede solicitarle que consulte otros canales de tecnologías de código abierto en los que puede encontrar más información sobre todas las tecnologías. Hay varios sitios de la comunidad; dos ejemplos son la página de Microsoft Q&A de Azure Databricks y Stack Overflow.
Bibliotecas con ámbito de clúster
Puede instalar bibliotecas en clústeres para que puedan usarlas todos los cuadernos y trabajos que se ejecuten en el clúster. Databricks admite bibliotecas de Python, JAR y R. Consulte Bibliotecas del clúster.
Puede instalar una biblioteca de clústeres directamente desde los orígenes siguientes:
- Un repositorio de paquetes como PyPI, Maven o CRAN
- Archivos del área de trabajo
- Volúmenes de Unity Catalog
- Ubicación de almacenamiento de objetos en la nube
- Ruta de acceso en la máquina local
No todas las ubicaciones se admiten para todos los tipos de bibliotecas o todas las configuraciones de proceso. Consulte Recomendaciones para cargar bibliotecas para obtener recomendaciones de configuración.
Importante
Las bibliotecas se pueden instalar desde DBFS cuando se usa Databricks Runtime 14.3 LTS y versiones anteriores. Sin embargo, cualquier usuario del área de trabajo puede modificar los archivos de biblioteca almacenados en DBFS. Para mejorar la seguridad de las bibliotecas en un área de trabajo de Azure Databricks, el almacenamiento de archivos de biblioteca en la raíz de DBFS está en desuso y deshabilitado de forma predeterminada en Databricks Runtime 15.1 y versiones posteriores. Consulte El almacenamiento de bibliotecas en la raíz de DBFS está en desuso y deshabilitado de manera predeterminada.
En su lugar, Databricks recomienda cargar todas las bibliotecas, incluidas las bibliotecas de Python, los archivos JAR y los conectores de Spark, en archivos de área de trabajo o volúmenes de Unity Catalog, o mediante repositorios de paquetes de biblioteca. Si la carga de trabajo no admite estos patrones, también puede usar bibliotecas almacenadas en el almacenamiento de objetos en la nube.
Para obtener información de compatibilidad completa con la biblioteca, consulte Compatibilidad con la biblioteca de Python, Compatibilidad con la biblioteca de Java y Scala y Compatibilidad con la biblioteca de R.
Recomendaciones para cargar bibliotecas
Databricks admite la mayoría de las instalaciones de configuración de las bibliotecas de Python, JAR y R, pero hay algunos escenarios no admitidos. Se recomienda cargar bibliotecas en ubicaciones de origen que admitan la instalación en proceso con el modo de acceso compartido, ya que este es el modo recomendado para todas las cargas de trabajo. Consulte Modos de acceso. Al programar trabajos con el modo de acceso compartido, ejecute el trabajo con una entidad de servicio.
Importante
Use solo el proceso con el modo de acceso de usuario único si el modo de acceso compartido no admite la funcionalidad necesaria. El modo de acceso compartido sin aislamiento es una configuración heredada en Databricks que no se recomienda.
En la tabla siguiente se proporcionan recomendaciones organizadas por la versión de Databricks Runtime y la habilitación de Unity Catalog.
Configuración | Recomendación |
---|---|
Databricks Runtime 13.3 LTS y versiones superiores con Unity Catalog | Instale bibliotecas en proceso con modo de acceso compartido desde volúmenes de Unity Catalog con CONCEDER PERMISOS para todos los usuarios de la cuenta. Si procede, las coordenadas de Maven y las rutas de acceso de biblioteca JAR deben agregarse a la lista de permitidos. |
Databricks Runtime 11.3 LTS y superior sin Unity Catalog | Instale bibliotecas desde archivos del área de trabajo. (El límite de tamaño de archivo es de 500 MB.) |
Databricks Runtime 10.4 LTS y versiones anteriores | Instalar bibliotecas desde el almacenamiento de objetos en la nube. |
Soporte de biblioteca de Python
En la tabla siguiente se indica la compatibilidad de la versión de Databricks Runtime para los archivos de rueda de Python para diferentes modos de acceso de clúster en función de la ubicación de origen de la biblioteca. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad y los modos de acceso.
En Databricks Runtime 15.0 y versiones posteriores, puede usar archivos requirements.txt para administrar las dependencias de Python. Estos archivos se pueden cargar en cualquier ubicación de origen compatible.
Nota:
La instalación de archivos de huevos de Python no se admite con Databricks Runtime 14.0 y versiones posteriores. En su lugar, use archivos de rueda de Python o instale paquetes desde PyPI.
Modo de acceso compartido | Modo de acceso de usuario único | Modo de acceso sin aislamiento compartido (heredado) | |
---|---|---|---|
PyPI | 13.3 LTS y versiones posteriores | Todas las versiones admitidas de Databricks Runtime | Todas las versiones admitidas de Databricks Runtime |
Archivos del área de trabajo | 13.3 LTS y versiones posteriores | 13.3 LTS y versiones posteriores | 14.1 y versiones posteriores |
Volúmenes | 13.3 LTS y versiones posteriores | 13.3 LTS y versiones posteriores | No compatible |
Almacenamiento en la nube | 13.3 LTS y versiones posteriores | Todas las versiones admitidas de Databricks Runtime | Todas las versiones admitidas de Databricks Runtime |
DBFS (no se recomienda) | No compatible | 14.3 y versiones anteriores | 14.3 y versiones anteriores |
Compatibilidad con bibliotecas de Java y Scala
En la tabla siguiente se indica la compatibilidad de la versión de Databricks Runtime para archivos JAR para diferentes modos de acceso de clúster en función de la ubicación de origen de la biblioteca. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad y los modos de acceso.
Nota:
El modo de acceso compartido requiere que un administrador agregue las coordenadas y las rutas de acceso de Maven para las bibliotecas JAR a un allowlist
. Consulte Agregar a la lista de permitidos bibliotecas y scripts de inicialización en proceso compartido.
Modo de acceso compartido | Modo de acceso de usuario único | Modo de acceso sin aislamiento compartido (heredado) | |
---|---|---|---|
Maven | 13.3 LTS y versiones posteriores | Todas las versiones admitidas de Databricks Runtime | Todas las versiones admitidas de Databricks Runtime |
Archivos del área de trabajo | No compatible | No compatible | 14.1 y versiones posteriores |
Volúmenes | 13.3 LTS y versiones posteriores | 13.3 LTS y versiones posteriores | No compatible |
Almacenamiento en la nube | 13.3 LTS y versiones posteriores | Todas las versiones admitidas de Databricks Runtime | Todas las versiones admitidas de Databricks Runtime |
DBFS (no se recomienda) | No compatible | 14.3 y versiones anteriores | 14.3 y versiones anteriores |
Compatibilidad con biblioteca R
En la tabla siguiente se indica la compatibilidad de la versión de Databricks Runtime para paquetes CRAN para diferentes modos de acceso de clúster. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad y los modos de acceso.
Modo de acceso compartido | Modo de acceso de usuario único | Modo de acceso sin aislamiento compartido (heredado) | |
---|---|---|---|
CRAN | No compatible | Todas las versiones admitidas de Databricks Runtime | Todas las versiones admitidas de Databricks Runtime |
Bibliotecas con ámbito de Notebook
Las bibliotecas cuyo ámbito es un cuaderno, que está disponibles para Python y R, permiten instalar bibliotecas y crear un entorno con ámbito de una sesión de un cuaderno. Estas bibliotecas no afectan a otros cuadernos que se ejecuten en el mismo clúster. Las bibliotecas cuyo ámbito es un cuaderno no se conservan, por lo que es preciso volver a instalarlas en cada sesión. Este tipo de bibliotecas se usan cuando se necesita un entorno personalizado para un cuaderno concreto.
Nota:
Los archivos JAR no se pueden instalar en el nivel de cuaderno.
Importante
Las bibliotecas de áreas de trabajo han quedado en desuso y no debería usarse. Consulte Bibliotecas de área de trabajo (heredado). Sin embargo, el almacenamiento de bibliotecas como archivos de área de trabajo es distinto de las bibliotecas de áreas de trabajo y sigue siendo totalmente compatible. Puede instalar bibliotecas almacenadas como archivos de área de trabajo directamente en tareas de proceso o trabajo.
Administración de entornos de Python
En la tabla siguiente se proporciona información general sobre las opciones que se pueden usar para instalar bibliotecas de Python en Azure Databricks.
Nota:
- contenedores personalizados que usan un entorno basado en Conda no son compatibles con bibliotecas con ámbito de cuaderno y con bibliotecas de clústeres en Databricks Runtime 10.4 LTS y versiones posteriores.0 En su lugar, Azure Databricks recomienda instalar bibliotecas directamente en la imagen o usar scripts de inicialización. Para seguir usando bibliotecas de clúster en esos escenarios, puede establecer la configuración de Spark
spark.databricks.driverNfs.clusterWidePythonLibsEnabled
enfalse
. La compatibilidad con la configuración de Spark finalizará el 31 de diciembre de 2021 o con posterioridad a esta fecha.
Origen de paquetes de Python | Bibliotecas cuyo ámbito es Notebook con %pip | Bibliotecas con ámbito de cuaderno con el archivo YAML del entorno base | Bibliotecas de clúster | Bibliotecas de trabajos con Jobs API |
---|---|---|---|---|
PyPI | Mediante %pip install . Vea el ejemplo. |
Agregue un nombre de paquete PyPI a un archivo YAML de entorno base. Vea el ejemplo. | Seleccione PyPI como origen. | Agregue un nuevo objeto pypi a las bibliotecas de trabajos y especifique el campo package . |
Un reflejo de PyPI privado, como Nexus o Artifactory | Use %pip install con la opción --index-url . Está disponible la administración de secretos. Vea el ejemplo. |
Agregue a -–index-url un archivo YAML de entorno base. Está disponible la administración de secretos. Vea el ejemplo. |
No compatible. | No compatible. |
VCS, como GitHub, con origen sin procesar | Use %pip install y especifique la dirección URL del repositorio como el nombre del paquete. Vea el ejemplo. |
Agregue una dirección URL de repositorio como nombre de paquete a un archivo YAML de entorno base. Vea el ejemplo. | Seleccione PyPI como origen y especifique la dirección URL del repositorio como nombre de paquete. | Agregue un nuevo objeto pypi a las bibliotecas de trabajos y especifique la dirección URL del repositorio como campo package . |
VCS privado con origen sin procesar | Use %pip install y especifique la dirección URL del repositorio con autenticación básica como nombre del paquete. Está disponible la administración de secretos. Vea el ejemplo. |
Agregue un repositorio con autenticación básica como nombre del paquete a un archivo YAML de entorno base. Vea el ejemplo. | No compatible. | No compatible. |
Ruta de acceso del archivo | Mediante %pip install . Vea el ejemplo. |
Agregue una ruta de acceso de archivo como nombre de paquete a un archivo YAML de entorno base. Vea el ejemplo. | Seleccione Ruta de acceso de archivo/ADLS como origen. | Añade un nuevo objeto egg o whl a las bibliotecas de trabajos y especifica la ruta del archivo como campo package . |
Azure Data Lake Storage Gen2 | Utilice %pip install junto con una URL pre-firmada. Las rutas con el protocolo Azure Data Lake Storage Gen2 abfss:// no son compatibles. |
Agregue una dirección URL firmada previamente como un nombre de paquete a un archivo YAML de entorno base. Las rutas con el protocolo Azure Data Lake Storage Gen2 abfss:// no son compatibles. |
Seleccione Ruta de acceso de archivo/ADLS como origen. | Agregue un nuevo egg u whl objeto a las bibliotecas de trabajos y especifique la ruta de Azure Data Lake Storage Gen2 como campopackage . |
Precedencia de la biblioteca de Python
Es posible que encuentre una situación en la que tenga que invalidar la versión de una biblioteca integrada, o tenga una biblioteca personalizada que entra en conflicto con otra biblioteca instalada en el clúster. Al ejecutar import <library>
, se importa la biblioteca con la precedencia alta.
Importante
Las bibliotecas almacenadas en archivos del área de trabajo tienen precedencia diferente en función de cómo se agreguen a Python sys.path
. Una carpeta de Git de Databricks agrega el directorio de trabajo actual a la ruta de acceso antes de todas las demás bibliotecas, mientras que los cuadernos fuera de las carpetas de Git agregan el directorio de trabajo actual después de instalar otras bibliotecas. Si anexa manualmente directorios del área de trabajo a la ruta de acceso, siempre tienen la precedencia más baja.
En la siguiente lista se ordena la precedencia de mayor a menor. En esta lista, un número menor significa mayor precedencia.
- Bibliotecas del directorio de trabajo actual (solo carpetas de Git).
- Bibliotecas en el directorio raíz de la carpeta Git (solo carpetas de Git).
- Bibliotecas con ámbito de cuaderno (
%pip install
en cuadernos). - Bibliotecas de clúster (mediante la interfaz de usuario, la CLI o la API).
- Bibliotecas incluidas en Databricks Runtime.
- Las bibliotecas instaladas con scripts de inicialización pueden resolverse antes o después de las bibliotecas integradas, en función de cómo se instalen. Databricks no recomienda instalar bibliotecas con scripts de inicialización.
- Bibliotecas del directorio de trabajo actual (no en carpetas de Git).
- Archivos del área de trabajo anexados a
sys.path
.