Compartir a través de


Instalación de bibliotecas

Para que el código personalizado o de terceros esté disponible para cuadernos y trabajos que se ejecutan en sus recursos computacionales, puede instalar una biblioteca. Las bibliotecas se pueden escribir en Python, Java, Scala y R. Puede cargar Python, Java y bibliotecas de Scala y apuntar a paquetes externos en repositorios 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:

Soporte técnico de Microsoft ayuda a aislar y resolver problemas relacionados con las bibliotecas instaladas y mantenidas por Azure Databricks. En el caso de los componentes de terceros, incluidas las bibliotecas, Microsoft proporciona soporte técnico comercialmente razonable para ayudarle a solucionar más problemas. Soporte técnico de Microsoft ayuda en la medida de sus posibilidades y podría resolver el problema. Para los conectores de código abierto y proyectos alojados en Github, se recomienda que registre problemas en Github y realice un seguimiento de ellos. Los esfuerzos de desarrollo, como los archivos jar sombreados o la creación de bibliotecas de Python, no se admiten a través del proceso de envío de casos de soporte técnico estándar: requieren una interacción de consultoría para una resolución más rápida. 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 para Azure Databricks y Stack Overflow.

Bibliotecas con ámbito de proceso

Puede instalar bibliotecas en un recurso de proceso para que todos los cuadernos y trabajos que se ejecuten en el proceso puedan usarlos. Databricks admite bibliotecas de Python, JAR y R. Consulte Bibliotecas con ámbito de cómputo.

Puede instalar una biblioteca de con ámbito de proceso directamente desde los orígenes siguientes:

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, archivos JAR y conectores de Spark, en archivos del área de trabajo o volúmenes del Catálogo de Unity, 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 completa sobre la compatibilidad con bibliotecas, consulte Python compatibilidad con bibliotecas, Java y compatibilidad con la biblioteca de Scala y compatibilidad con la biblioteca R.

Recomendaciones para cargar bibliotecas

Databricks admite la mayoría de las instalaciones de configuración de 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 estándar (anteriormente 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 estándar, ejecute el trabajo con una entidad de servicio.

Importante

Solo use el cómputo con el modo de acceso exclusivo (anteriormente modo de acceso para un solo usuario) en caso de que el modo de acceso estándar no admita 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 el modo de acceso estándar desde volúmenes de Unity Catalog con GRANT READ para los usuarios pertinentes.
Si procede, las coordenadas de Maven y las rutas de acceso de biblioteca JAR deben agregarse a la lista de permisos.
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.

compatibilidad con la biblioteca de Python

En la tabla siguiente se indica la compatibilidad de la versión de Databricks Runtime para archivos wheel de Python según los diferentes modos de acceso de cálculo 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 requirements.txt archivos para administrar las dependencias de Python. Estos archivos se pueden cargar en cualquier ubicación de origen compatible.

Nota:

La instalación de archivos egg de Python solo se admite en Databricks Runtime 13.3 LTS y versiones anteriores, y solo para los modos de acceso dedicado o compartido sin aislamiento. Además, no puede instalar archivos egg de Python en volúmenes o archivos de espacio de trabajo. Emplee archivos wheel de Python o instale paquetes desde PyPI en su defecto.

Modo de acceso estándar Modo de acceso dedicado 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 soportado
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 soportado 14.3 y versiones anteriores 14.3 y versiones anteriores

compatibilidad con la biblioteca 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 proceso en función de la ubicación del origen de la biblioteca. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad y los modos de acceso.

Para más información sobre cómo implementar archivos JAR de Scala en un clúster habilitado para el catálogo de Unity en modo de acceso estándar, consulte Tutorial: Ejecución de código Scala en proceso sin servidor. Tenga en cuenta que, en los clústeres estándar del catálogo de Unity, las clases de las bibliotecas JAR deben estar en un paquete con nombre, como com.databricks.MyClass, o se producirán errores al importar la biblioteca.

Nota:

El modo de acceso estándar requiere que un administrador agregue las coordenadas de Maven y las rutas de acceso para las bibliotecas JAR a un allowlist. Consulte Lista de permitidos de bibliotecas y scripts de inicialización en procesos con el modo de acceso estándar (anteriormente modo de acceso compartido).

Modo de acceso estándar Modo de acceso dedicado 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 soportado No soportado 14.1 y versiones posteriores
Volúmenes 13.3 LTS y versiones posteriores 13.3 LTS y versiones posteriores No soportado
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 soportado 14.3 y versiones anteriores 14.3 y versiones anteriores

Compatibilidad con biblioteca R

La siguiente tabla muestra la compatibilidad de las versiones de Databricks Runtime para paquetes CRAN en diferentes modos de acceso de computación. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad y los modos de acceso.

Modo de acceso estándar Modo de acceso dedicado Modo de acceso sin aislamiento compartido (heredado)
CRAN No soportado Todas las versiones admitidas de Databricks Runtime Todas las versiones admitidas de Databricks Runtime

Identidad del instalador

Al instalar una biblioteca desde archivos del área de trabajo o volúmenes de Unity Catalog, puede asociarse una identidad a la instalación en función del modo de acceso de proceso. La identidad debe tener acceso de lectura al archivo de la biblioteca.

Modo de acceso estándar Modo de acceso dedicado Modo de acceso sin aislamiento compartido (heredado)
Identidad del usuario que instala la biblioteca La identidad de la entidad de seguridad dedicada Sin identidad

Bibliotecas con ámbito de Notebook

Las bibliotecas con ámbito de cuaderno, disponibles para Python y R, permiten instalar bibliotecas y crear un entorno con ámbito en una sesión de cuaderno. Estas bibliotecas no afectan a otros cuadernos que se ejecutan en la misma instancia de cómputo. 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ían 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 del entorno de Python

En la tabla siguiente se proporciona información general sobre las opciones que puede 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 proceso en Databricks Runtime 10.4 LTS y versiones posteriores.0 En su lugar, Azure Databricks recomienda instalar bibliotecas directamente en la imagen o mediante scripts de inicialización. Para seguir usando bibliotecas de cálculo en esos escenarios, puede establecer la configuración de Sparkspark.databricks.driverNfs.clusterWidePythonLibsEnabled en false. La compatibilidad con la configuración de Spark finalizará el 31 de diciembre de 2021 o con posterioridad a esta fecha.
Código fuente del paquete de Python Bibliotecas cuyo ámbito es Notebook con %pip Bibliotecas con ámbito de Notebook con archivo YAML para el entorno base Bibliotecas con ámbito de proceso Bibliotecas de trabajos con Jobs API
PyPI Usa %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 espejo privado de PyPI, como Nexus o Artifactory Utilice %pip install con la opción --index-url. Está disponible la administración de secretos. Vea el ejemplo. Agregue el -–index-url a un archivo YAML de entorno base. Está disponible la administración de secretos. Vea el ejemplo. No compatible. No compatible.
Sistemas de control de versiones, como GitHub, con código fuente bruto 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.
Sistema de Control de Versiones (VCS) privado con código fuente 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 Usa %pip install. Vea el ejemplo. Agregue una ruta de archivo como nombre de paquete a un archivo YAML del 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 Utilice %pip install junto con una URL pre-firmada. No se admiten las rutas de acceso con el protocolo Azure Data Lake Storage abfss://. Agregue una dirección URL firmada previamente como un nombre de paquete a un archivo YAML de entorno base. No se admiten las rutas de acceso con el protocolo Azure Data Lake Storage abfss://. Seleccione Ruta de acceso de archivo/ADLS como origen. Agregue un nuevo objeto egg o whl a las bibliotecas de trabajos y especifique la ruta de acceso Azure Data Lake Storage como campo package.

Precedencia de la biblioteca de Python

Es posible que encuentre una situación en la que necesite invalidar la versión de una biblioteca integrada o tener una biblioteca personalizada que entre en conflicto con otra biblioteca instalada en el recurso de proceso. Al ejecutar import <library>, se importa la biblioteca con la precedencia alta.

Importante

Las bibliotecas almacenadas en los archivos del área de trabajo tienen una prioridad diferente en función de cómo se agregan a la Python sys.path. Una carpeta Git de Databricks agrega el directorio de trabajo actual a la ruta antes de todas las demás bibliotecas, mientras que los cuadernos fuera de las carpetas Git agregan el directorio de trabajo actual después de que se instalen 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.

  1. Bibliotecas del directorio de trabajo actual (solo carpetas de Git).
  2. Bibliotecas en el directorio raíz de la carpeta Git (solo carpetas de Git).
  3. Bibliotecas con ámbito de cuaderno (%pip install en cuadernos).
  4. Bibliotecas con ámbito de proceso (mediante la interfaz de usuario, la CLI o la API).
  5. 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.
  6. Bibliotecas del directorio de trabajo actual (no en carpetas de Git).
  7. Archivos del área de trabajo anexados a sys.path.