API Bibliothèques

L’API bibliothèques vous permet d’installer et de désinstaller des bibliothèques et d’obtenir l’état des bibliothèques sur un cluster.

Important

Pour accéder aux API REST Databricks, vous devez vous authentifier.

Tous les États de cluster

Point de terminaison Méthode HTTP
2.0/libraries/all-cluster-statuses GET

Obtient l’état de toutes les bibliothèques sur tous les clusters. Un État est disponible pour toutes les bibliothèques installées sur des clusters via l’API ou l’interface utilisateur de la bibliothèque, ainsi que pour les bibliothèques définies pour être installées sur tous les clusters via l’interface utilisateur des bibliothèques. Si une bibliothèque a été configurée pour être installée sur tous les clusters, is_library_for_all_clusters sera true , même si la bibliothèque était également installée sur ce cluster spécifique.

 Exemple

Requête

curl --netrc --request GET \
https://<databricks-instance>/api/2.0/libraries/all-cluster-statuses \
| jq .

Remplacez <databricks-instance> par le nom de l' instance de l’espace de travailAzure Databricks, par exemple adb-1234567890123456.7.azuredatabricks.net .

Cet exemple utilise un fichier . netrc et JQ.

response

{
  "statuses": [
    {
      "cluster_id": "11203-my-cluster",
      "library_statuses": [
        {
          "library": {
            "jar": "dbfs:/mnt/libraries/library.jar"
          },
          "status": "INSTALLING",
          "messages": [],
          "is_library_for_all_clusters": false
        }
      ]
    },
    {
      "cluster_id": "20131-my-other-cluster",
      "library_statuses": [
        {
          "library": {
            "egg": "dbfs:/mnt/libraries/library.egg"
          },
          "status": "ERROR",
          "messages": ["Could not download library"],
          "is_library_for_all_clusters": false
        }
      ]
    }
  ]
}

Structure de la réponse

Nom du champ Type Description
statuses Tableau de ClusterLibraryStatuses Liste des États du cluster.

État du cluster

Point de terminaison Méthode HTTP
2.0/libraries/cluster-status GET

Obtenir l’état des bibliothèques sur un cluster. Un État est disponible pour toutes les bibliothèques installées sur le cluster par le biais de l’API ou de l’interface utilisateur de la bibliothèque, ainsi que des bibliothèques définies pour être installées sur tous les clusters via l’interface utilisateur des bibliothèques. Si une bibliothèque a été configurée pour être installée sur tous les clusters, is_library_for_all_clusters sera true , même si la bibliothèque était également installée sur le cluster.

 Exemple

Requête

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/libraries/cluster-status?cluster_id=<cluster-id>' \
| jq .

Ou :

curl --netrc --get \
https://<databricks-instance>/api/2.0/libraries/cluster-status \
--data cluster_id=<cluster-id> \
| jq .

Remplacez :

  • <databricks-instance> par exemple, avec le nom de l' instance de l’espace de travailAzure Databricks adb-1234567890123456.7.azuredatabricks.net .
  • <cluster-id> par exemple, avec l’ID d’espace de travail Azure Databricks du cluster 1234-567890-example123 .

Cet exemple utilise un fichier . netrc et JQ.

response

{
  "cluster_id": "11203-my-cluster",
  "library_statuses": [
    {
      "library": {
        "jar": "dbfs:/mnt/libraries/library.jar"
      },
      "status": "INSTALLED",
      "messages": [],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "pypi": {
          "package": "beautifulsoup4"
        },
      },
      "status": "INSTALLING",
      "messages": ["Successfully resolved package from PyPI"],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "cran": {
          "package": "ada",
          "repo": "https://cran.us.r-project.org"
        },
      },
      "status": "FAILED",
      "messages": ["R package installation is not supported on this spark version.\nPlease upgrade to Runtime 3.2 or higher"],
      "is_library_for_all_clusters": false
    }
  ]
}

Structure de la requête

Nom du champ Type Description
cluster_id STRING Identificateur unique du cluster dont l’État doit être récupéré. Ce champ doit obligatoirement être renseigné.

Structure de la réponse

Nom du champ Type Description
cluster_id STRING Identificateur unique pour le cluster.
library_statuses Tableau de LibraryFullStatus État de toutes les bibliothèques sur le cluster.

Installer

Point de terminaison Méthode HTTP
2.0/libraries/install POST

Installez les bibliothèques sur un cluster. L’installation est asynchrone. elle se termine en arrière-plan après la demande.

Important

Cet appel échoue si le cluster est arrêté.

L’installation d’une bibliothèque de roues sur un cluster revient à exécuter la pip commande sur le fichier de roue directement sur le pilote et les exécuteurs. Toutes les dépendances spécifiées dans le setup.py fichier bibliothèque sont installées et le nom de la bibliothèque doit être conforme à la Convention de nom de fichierde la roulette.

L’installation sur les exécuteurs se produit uniquement lorsqu’une nouvelle tâche est lancée. Avec Databricks Runtime 7,1 et les versions antérieures, l’ordre d’installation des bibliothèques n’est pas déterministe. Pour les bibliothèques de roues, vous pouvez garantir un ordre d’installation déterministe en créant un fichier zip avec un suffixe .wheelhouse.zip qui comprend tous les fichiers de roulette.

Exemple

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/libraries/install \
--data @install-libraries.json

install-libraries.json:

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "egg": "dbfs:/mnt/libraries/library.egg"
    },
    {
      "whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
    },
    {
      "whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2",
        "exclusions": ["slf4j:slf4j"]
      }
    },
    {
      "pypi": {
        "package": "simplejson",
        "repo": "https://my-pypi-mirror.com"
      }
    },
    {
      "cran": {
        "package": "ada",
        "repo": "https://cran.us.r-project.org"
      }
    }
  ]
}

Remplacez :

  • <databricks-instance> par exemple, avec le nom de l' instance de l’espace de travailAzure Databricks adb-1234567890123456.7.azuredatabricks.net .
  • Contenu de install-libraries.json avec les champs appropriés pour votre solution.

Cet exemple utilise un fichier . netrc .

Structure de la requête

Nom du champ Type Description
cluster_id STRING Identificateur unique du cluster sur lequel installer ces bibliothèques. Ce champ doit obligatoirement être renseigné.
libraries Tableau de bibliothèque Bibliothèques à installer.

Désinstaller

Point de terminaison Méthode HTTP
2.0/libraries/uninstall POST

Définissez les bibliothèques à désinstaller sur un cluster. Les bibliothèques ne sont pas désinstallées tant que le cluster n’est pas redémarré. La désinstallation des bibliothèques qui ne sont pas installées sur le cluster n’a aucun impact, mais n’est pas une erreur.

Exemple

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/libraries/uninstall \
--data @uninstall-libraries.json

uninstall-libraries.json:

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "cran": "ada"
    }
  ]
}

Remplacez :

  • <databricks-instance> par exemple, avec le nom de l' instance de l’espace de travailAzure Databricks adb-1234567890123456.7.azuredatabricks.net .
  • Contenu de uninstall-libraries.json avec les champs appropriés pour votre solution.

Cet exemple utilise un fichier . netrc .

Structure de la requête

Nom du champ Type Description
cluster_id STRING Identificateur unique du cluster sur lequel les bibliothèques doivent être désinstallées. Ce champ doit obligatoirement être renseigné.
libraries Tableau de bibliothèque Bibliothèques à désinstaller.

Structures de données

Dans cette section :

ClusterLibraryStatuses

Nom du champ Type Description
cluster_id STRING Identificateur unique pour le cluster.
library_statuses Tableau de LibraryFullStatus État de toutes les bibliothèques sur le cluster.

Bibliothèque

Nom du champ Type Description
jar, oeuf, WHL ou Pypi ou Maven ou cran STRING OU ou ou ou STRING STRING PythonPyPiLibrary ou MavenLibrary ou RCranLibrary Si jar, URI du fichier JAR à installer. Les URI DBFS et ADLS ( abfss ) sont pris en charge. Par exemple : { "jar": "dbfs:/mnt/databricks/library.jar" } ou
{ "jar": "abfss://my-bucket/library.jar" }. Si ADLS est utilisé, assurez-vous que le cluster dispose d’un accès en lecture sur la bibliothèque.

Si oeuf, URI de l’oeuf à installer. Les URI DBFS et ADLS sont pris en charge. Par exemple : { "egg": "dbfs:/my/egg" } ou
{ "egg": "abfss://my-bucket/egg" }.

Si WHL, URI du volant ou des roues compressées à installer. Les URI DBFS et ADLS sont pris en charge. Par exemple : { "whl": "dbfs:/my/whl" } ou
{ "whl": "abfss://my-bucket/whl" }. Si ADLS est utilisé, assurez-vous que le cluster dispose d’un accès en lecture sur la bibliothèque. En outre, le nom du fichier de roulette doit utiliser la Convention correcte. Si des roues compressées doivent être installées, le suffixe du nom de fichier doit être .wheelhouse.zip .

Si Pypi, spécification d’une bibliothèque PyPI à installer. La spécification du repo champ est facultative et, s’il n’est pas spécifié, l’index PIP par défaut est utilisé. Par exemple :
{ "package": "simplejson", "repo": "https://my-repo.com" }

Si Maven, spécification d’une bibliothèque Maven à installer. Par exemple :
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Si cran, spécification d’une bibliothèque CRAN à installer.

LibraryFullStatus

État de la bibliothèque sur un cluster spécifique.

Nom du champ Type Description
bibliothèque Bibliothèque Identificateur unique de la bibliothèque.
status LibraryInstallStatus État de l’installation de la bibliothèque sur le cluster.
Cloud vers appareil Tableau de STRING Tous les messages d’information et d’avertissement qui se sont produits jusqu’à présent pour cette bibliothèque.
is_library_for_all_clusters BOOL Indique si la bibliothèque a été configurée pour être installée sur tous les clusters via l’interface utilisateur des bibliothèques.

MavenLibrary

Nom du champ Type Description
coordonnées STRING Coordonnées de Maven de type Gradle. Par exemple : org.jsoup:jsoup:1.7.2. Ce champ doit obligatoirement être renseigné.
repo STRING Maven référentiel pour installer le package Maven à partir de. En cas d’omission, les packages Maven central et Spark sont recherchés.
exclusions Tableau de STRING Liste des dépendances à exclure. Par exemple : ["slf4j:slf4j", "*:hadoop-client"].

Exclusions de dépendance Maven : https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html .

PythonPyPiLibrary

Nom du champ Type Description
package STRING Nom du package PyPI à installer. Une spécification de version exacte facultative est également prise en charge. Exemples : simplejson et simplejson==3.8.0. Ce champ doit obligatoirement être renseigné.
repo STRING Référentiel dans lequel se trouve le package. S’il n’est pas spécifié, l’index PIP par défaut est utilisé.

RCranLibrary

Nom du champ Type Description
package STRING Nom du package CRAN à installer. Ce champ doit obligatoirement être renseigné.
repo STRING Référentiel dans lequel se trouve le package. S’il n’est pas spécifié, le référentiel CRAN par défaut est utilisé.

LibraryInstallStatus

État d’une bibliothèque sur un cluster spécifique.

Statut Description
PENDING Aucune action n’a encore été prise pour installer la bibliothèque. Cet État doit avoir une durée de vie très courte.
RESOLVING Les métadonnées nécessaires à l’installation de la bibliothèque sont extraites du référentiel fourni.

Pour les bibliothèques jar, oeuf et WHL, cette étape est une opération non opérationnelle.
L’installation La bibliothèque est actuellement en cours d’installation, soit en ajoutant des ressources à Spark, soit en exécutant des commandes système à l’intérieur des nœuds Spark.
ORDINATEUR La bibliothèque a été correctement installée.
SKIPPED L’installation sur un cluster Databricks Runtime 7,0 ou version ultérieure a été ignorée en raison d’une incompatibilité de version Scala.
FAILED Une étape de l’installation a échoué. Vous trouverez plus d’informations dans le champ messages.
UNINSTALL_ON_RESTART La bibliothèque a été marquée pour suppression. Les bibliothèques ne peuvent être supprimées que lorsque les clusters sont redémarrés. ainsi, les bibliothèques qui entrent dans cet État sont conservées jusqu’au redémarrage du cluster.