Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe la sintaxis para declarar dependencias de biblioteca del conjunto de recursos de Databricks. Los paquetes permiten la administración de manera programática de las tareas de Lakeflow. Consulte ¿Qué son los conjuntos de recursos de Databricks?
Además de los cuadernos y los archivos de origen, es probable que los trabajos dependan de las bibliotecas para que funcionen según lo previsto. Las dependencias de biblioteca se declaran en los archivos de configuración de agrupación y a menudo son necesarias como parte de la especificación del tipo de tarea de trabajo .
Los paquetes proporcionan compatibilidad con las siguientes dependencias de biblioteca:
- Archivo wheel de Python
- Archivo JAR (Java o Scala)
- Paquetes PyPI, Maven o CRAN
Para Python, también puede especificar dependencias de tareas de trabajo en un archivo requirements.txt e incluirlo en su agrupación. Consulte Python requirements.txt.
Nota:
Si se admite una biblioteca depende de la configuración del clúster y del origen de la biblioteca. Para obtener información completa sobre la compatibilidad con la biblioteca, consulte Instalación de 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 catálogo de Unity, 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 wheel de Python se cargó anteriormente en el área de trabajo de Azure Databricks o se agregó como un elemento de
includeen lasyncasignacióny 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-volumeen 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 (Java o Scala)
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 los volúmenes del catálogo de Unity, el 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
Para obtener una configuración de ejemplo que compila e implementa el JAR, consulte Paquete que carga un archivo JAR en el catálogo de Unity. Para ver un tutorial que crea un proyecto de agrupación que compila e implementa un archivo JAR de Scala, consulte Compilación de un archivo JAR de Scala mediante Conjuntos de recursos de Databricks.
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 mapeo, 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 depippredeterminado (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
pippredeterminado. - El segundo paquete PyPI usa la versión del paquete especificada y el índice de
pipespecificado 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 mapeo, 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 las dependencias de este 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*
Python requirements.txt
Las dependencias de la biblioteca de Python también se pueden especificar en un requirements*.txt archivo que se incluye como parte de la definición de la tarea de trabajo. La ruta de acceso al archivo puede ser una ruta local, una ruta de área de trabajo o una ruta de volumen de Unity Catalog.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt