Partager via


Dépendances de bibliothèque de packs de ressources Databricks

Cet article décrit la syntaxe permettant de déclarer les dépendances de bibliothèque de packs de ressources Databricks. Les bundles permettent la gestion par programmation des flux de travail Azure Databricks. Consultez Que sont les packs de ressources Databricks ?.

En plus des notebooks, vos travaux Azure Databricks dépendent probablement des bibliothèques pour fonctionner comme prévu. Les dépendances des packs de ressources Databricks pour le développement local sont spécifiées dans le fichier requirements*.txt à la racine du projet groupé, mais les dépendances de bibliothèque de tâches de travail sont déclarées dans vos fichiers de configuration de pack et sont souvent nécessaires dans le cadre de la spécification du type de tâche de travail.

Les packs prennent en charge les dépendances de bibliothèque suivantes pour les travaux Azure Databricks :

  • Fichier wheel Python
  • Fichier JAR (Java ou Scala)
  • Packages PyPI, Maven ou CRAN

Remarque

La prise en charge d'une bibliothèque dépend de la configuration du cluster pour le travail et de la source de la bibliothèque. Pour obtenir des informations complètes sur la prise en charge des bibliothèques, consultez Bibliothèques.

Fichier wheel Python

Pour ajouter un fichier wheel Python à une tâche de travail, dans libraries, spécifiez un mappage whl pour chaque bibliothèque à installer. Vous pouvez installer un fichier wheel à partir de fichiers d’espace de travail, de volumes Unity Catalog, de stockage d’objets cloud ou d’un chemin d’accès de fichier local.

Important

Vous pouvez également installer les bibliothèques à partir de DBFS lors de l’utilisation de Databricks Runtime 14.3 LTS et versions antérieures. Toutefois, tout utilisateur de l’espace de travail peut modifier les bibliothèques de codes stockées dans DBFS. Pour améliorer la sécurité des bibliothèques dans un espace de travail Azure Databricks, le stockage des bibliothèques de codes dans la racine DBFS est déconseillé et désactivé par défaut dans Databricks Runtime 15.1 et versions ultérieures. Consultez Le stockage des bibliothèques dans la racine DBFS est déconseillé et désactivé par défaut.

Au lieu de cela, Databricks recommande de charger toutes les bibliothèques, notamment les bibliothèques Python, les fichiers JAR et les connecteurs Spark, dans des fichiers d’espace de travail ou des volumes du catalogue Unity, ou d’utiliser des référentiels de packages de bibliothèques. Si votre charge de travail ne prend pas en charge ces modèles, vous pouvez également utiliser des bibliothèques stockées dans le stockage d’objets cloud.

L’exemple suivant montre comment installer trois fichiers wheel Python pour une tâche de travail.

  • Le premier fichier wheel Python a été précédemment chargé dans l’espace de travail Azure Databricks ou ajouté en tant qu’élément include dans le mappage sync, et se trouve dans le même dossier local que le fichier de configuration du pack.
  • Le deuxième fichier wheel Python se trouve à l’emplacement des fichiers d’espace de travail spécifiés dans l’espace de travail Azure Databricks.
  • Le troisième fichier wheel Python a été précédemment chargé sur le volume nommé my-volume dans l’espace de travail 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

Fichier JAR

Pour ajouter un fichier JAR à une tâche de travail, dans libraries, spécifiez un mappage jar pour chaque bibliothèque à installer. Vous pouvez installer un fichier JAR à partir de fichiers d’espace de travail, de volumes Unity Catalog, de stockage d’objets cloud ou d’un chemin d’accès de fichier local.

Important

Vous pouvez également installer les bibliothèques à partir de DBFS lors de l’utilisation de Databricks Runtime 14.3 LTS et versions antérieures. Toutefois, tout utilisateur de l’espace de travail peut modifier les bibliothèques de codes stockées dans DBFS. Pour améliorer la sécurité des bibliothèques dans un espace de travail Azure Databricks, le stockage des bibliothèques de codes dans la racine DBFS est déconseillé et désactivé par défaut dans Databricks Runtime 15.1 et versions ultérieures. Consultez Le stockage des bibliothèques dans la racine DBFS est déconseillé et désactivé par défaut.

Au lieu de cela, Databricks recommande de charger toutes les bibliothèques, notamment les bibliothèques Python, les fichiers JAR et les connecteurs Spark, dans des fichiers d’espace de travail ou des volumes du catalogue Unity, ou d’utiliser des référentiels de packages de bibliothèques. Si votre charge de travail ne prend pas en charge ces modèles, vous pouvez également utiliser des bibliothèques stockées dans le stockage d’objets cloud.

L’exemple suivant montre comment installer un fichier JAR précédemment chargé sur le volume nommé my-volume dans l’espace de travail Azure Databricks.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

Package PyPI

Pour ajouter un package PyPI à une définition de tâche de travail, dans libraries, spécifiez un mappage pypi pour chaque package PyPI à installer. Pour chaque mappage, spécifiez les éléments suivants :

  • Pour package, spécifiez le nom du package PyPI à installer. Une spécification de version exacte facultative est également prise en charge.
  • Si vous le souhaitez, pour repo, spécifiez le référentiel où se trouve le package PyPI. S’il n’est pas spécifié, l’index pip par défaut est utilisé (https://pypi.org/simple/).

L’exemple suivant montre comment installer deux packages PyPI.

  • Le premier package PyPI utilise la version de package spécifiée et l’index pip par défaut.
  • Le deuxième package PyPI utilise la version de package spécifiée et l’index pip spécifié explicitement.
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/

Package Maven

Pour ajouter un package Maven à une définition de tâche de travail, dans libraries, spécifiez un mappage maven pour chaque package Maven à installer. Pour chaque mappage, spécifiez les éléments suivants :

  • Pour coordinates, spécifiez les coordonnées Maven de style Gradle pour le package.
  • Si vous le souhaitez, pour repo, spécifiez le dépôt Maven à partir duquel installer le package Maven. S’il est omis, le référentiel central Maven et le référentiel de packages Spark sont recherchés.
  • Si vous le souhaitez, pour exclusions, spécifiez les dépendances à exclure explicitement. Consultez exclusions de dépendance Maven.

L’exemple suivant montre comment installer deux packages Maven.

  • Le premier package Maven utilise les coordonnées de package spécifiées et recherche ce package dans le référentiel central Maven et le référentiel de packages Spark.
  • Le deuxième package Maven utilise les coordonnées de package spécifiées, recherche ce package uniquement dans le référentiel central Maven et n’inclut aucune des dépendances de ce package qui correspondent au modèle spécifié.
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*