Dependencias de la biblioteca de conjuntos de recursos de Databricks
En este artículo se describe la sintaxis para declarar dependencias de biblioteca del conjunto de recursos de Databricks. Las agrupaciones permiten la administración mediante programación de flujos de trabajo de Azure Databricks. Consulte ¿Qué son los conjuntos de recursos de Databricks?
Además de los cuadernos, es probable que los trabajos de Azure Databricks dependan de las bibliotecas para que funcionen según lo previsto. Las dependencias de conjuntos de recursos de Databricks para el desarrollo local se especifican en el archivo requirements*.txt
en la raíz del proyecto de agrupación, pero las dependencias de la biblioteca de tareas de trabajo se declaran en los archivos de configuración de agrupación y a menudo son necesarios como parte del tipo de tarea de trabajo de especificación.
Los paquetes proporcionan compatibilidad con las siguientes dependencias de biblioteca para trabajos de Azure Databricks:
- Archivo wheel de Python
- Archivo JAR (Java o Scala)
- Paquetes PyPI, Maven o CRAN
Nota:
Si se admite o no una biblioteca depende de la configuración del clúster para el trabajo y el origen de la biblioteca. Para obtener información de compatibilidad completa con la biblioteca, consulte Bibliotecas.
Archivo wheel de Python
Para agregar un archivo wheel de Python a una tarea de trabajo, en libraries
especifique una asignación whl
para cada biblioteca que se va a instalar. Puede instalar un archivo wheel desde archivos del área de trabajo, volúmenes de Unity Catalog, almacenamiento de objetos en la nube o una ruta de archivo local.
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.
En el siguiente ejemplo se muestra cómo instalar tres archivos wheel de Python para una tarea de trabajo.
- El primer archivo de rueda de Python se cargó anteriormente en el área de trabajo de Azure Databricks o se agregó como un elemento de
include
en lasync
asignación, y se encuentra en la misma carpeta local que el archivo de configuración de agrupación. - El segundo archivo wheel de Python se encuentra en la ubicación de los archivos del área de trabajo especificada en el área de trabajo de Azure Databricks.
- El tercer archivo wheel de Python se cargó anteriormente en el volumen denominado
my-volume
en el área de trabajo de Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
Archivo JAR
Para agregar un archivo JAR a una tarea de trabajo, en libraries
especifique una asignación jar
para cada biblioteca que se va a instalar. Puede instalar un JAR desde archivos del área de trabajo, volúmenes de Unity Catalog, almacenamiento de objetos en la nube o una ruta de archivo local.
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.
En el siguiente ejemplo se muestra cómo instalar un archivo JAR que se cargó anteriormente en el volumen denominado my-volume
en el área de trabajo de Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Paquete PyPI
Para agregar un paquete PyPI a una definición de tarea de trabajo, en libraries
, especifique una asignación pypi
para cada paquete de PyPI que se va a instalar. Para cada asignación, especifique lo siguiente:
- Para
package
, especifique el nombre del paquete pyPI que se va a instalar. También se admite una especificación de versión exacta opcional. - Opcionalmente, para
repo
, especifique el repositorio donde se puede encontrar el paquete PyPI. Si no se especifica, se usa el índice depip
predeterminado (https://pypi.org/simple/).
En el ejemplo siguiente se muestra cómo instalar dos paquetes PyPI.
- El primer paquete PyPI usa la versión del paquete especificada y el índice de
pip
predeterminado. - El segundo paquete PyPI usa la versión del paquete especificada y el índice de
pip
especificado explícitamente.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Paquete Maven
Para agregar un paquete de Maven a una definición de tarea de trabajo, en libraries
, especifique una asignación maven
para cada paquete de Maven que se va a instalar. Para cada asignación, especifique lo siguiente:
- Para
coordinates
, especifique las coordenadas de Maven de estilo Gradle para el paquete. - Opcionalmente, para
repo
, especifique el repositorio de Maven desde donde instalar el paquete de Maven. Si se omite, se buscan tanto el repositorio central de Maven como el repositorio de paquetes de Spark. - Opcionalmente, para
exclusions
, especifique las dependencias que se van a excluir explícitamente. Consulte Exclusiones de dependencias de Maven.
En el ejemplo siguiente se muestra cómo instalar dos paquetes de Maven.
- El primer paquete de Maven usa las coordenadas del paquete especificadas y busca este paquete en el repositorio central de Maven y en el repositorio de paquetes de Spark.
- El segundo paquete de Maven usa las coordenadas del paquete especificadas, busca este paquete solo en el repositorio central de Maven y no incluye ninguna de estas dependencias del paquete que coincidan con el patrón especificado.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*