API BibliothèquesLibraries API

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.The Libraries API allows you to install and uninstall libraries and get the status of libraries on a cluster.

Important

Pour accéder aux API REST Databricks, vous devez vous authentifier.To access Databricks REST APIs, you must authenticate.

Tous les États de cluster All cluster statuses

Point de terminaisonEndpoint Méthode HTTPHTTP Method
2.0/libraries/all-cluster-statuses GET

Obtient l’état de toutes les bibliothèques sur tous les clusters.Get the status of all libraries on all 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.A status will be available for all libraries installed on clusters via the API or the libraries UI as well as libraries set to be installed on all clusters via the libraries UI. 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.If a library has been set to be installed on all clusters, is_library_for_all_clusters will be true, even if the library was also installed on this specific cluster.

Exemple de réponseExample 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 Response structure

Nom du champField Name TypeType DescriptionDescription
statusesstatuses Tableau de ClusterLibraryStatusesAn array of ClusterLibraryStatuses Liste des États du cluster.A list of cluster statuses.

État du cluster Cluster status

Point de terminaisonEndpoint Méthode HTTPHTTP Method
2.0/libraries/cluster-status GET

Obtenir l’état des bibliothèques sur un cluster.Get the status of libraries on a 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.A status will be available for all libraries installed on the cluster via the API or the libraries UI as well as libraries set to be installed on all clusters via the libraries UI. 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.If a library has been set to be installed on all clusters, is_library_for_all_clusters will be true, even if the library was also installed on the cluster.

Exemple de requêteExample request

/libraries/cluster-status?cluster_id=11203-my-cluster

Exemple de réponseExample 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 Request structure

Nom du champField Name TypeType DescriptionDescription
cluster_idcluster_id STRING Identificateur unique du cluster dont l’État doit être récupéré.Unique identifier of the cluster whose status should be retrieved. Ce champ doit obligatoirement être renseigné.This field is required.

Structure de la réponse Response structure

Nom du champField Name TypeType DescriptionDescription
cluster_idcluster_id STRING Identificateur unique pour le cluster.Unique identifier for the cluster.
library_statuseslibrary_statuses Tableau de LibraryFullStatusAn array of LibraryFullStatus État de toutes les bibliothèques sur le cluster.Status of all libraries on the cluster.

Installer Install

Point de terminaisonEndpoint Méthode HTTPHTTP Method
2.0/libraries/install POST

Installez les bibliothèques sur un cluster.Install libraries on a cluster. L’installation est asynchrone. elle se termine en arrière-plan après la demande.The installation is asynchronous - it completes in the background after the request.

Important

Cet appel échoue si le cluster est arrêté.This call will fail if the cluster is terminated.

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.Installing a wheel library on a cluster is like running the pip command against the wheel file directly on driver and executors. 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.All the dependencies specified in the library setup.py file are installed and this requires the library name to satisfy the wheel file name convention.

L’installation sur les exécuteurs se produit uniquement lorsqu’une nouvelle tâche est lancée.The installation on the executors happens only when a new task is launched. Avec Databricks Runtime 7,1 et les versions antérieures, l’ordre d’installation des bibliothèques n’est pas déterministe.With Databricks Runtime 7.1 and below, the installation order of libraries is nondeterministic. 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.For wheel libraries, you can ensure a deterministic installation order by creating a zip file with suffix .wheelhouse.zip that includes all the wheel files.

Exemple de requêteExample request

{
  "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"
      }
    }
  ]
}

Structure de la requête Request structure

Nom du champField Name TypeType DescriptionDescription
cluster_idcluster_id STRING Identificateur unique du cluster sur lequel installer ces bibliothèques.Unique identifier for the cluster on which to install these libraries. Ce champ doit obligatoirement être renseigné.This field is required.
librarieslibraries Tableau de bibliothèqueAn array of Library Bibliothèques à installer.The libraries to install.

Désinstaller Uninstall

Point de terminaisonEndpoint Méthode HTTPHTTP Method
2.0/libraries/uninstall POST

Définissez les bibliothèques à désinstaller sur un cluster.Set libraries to be uninstalled on a cluster. Les bibliothèques ne sont pas désinstallées tant que le cluster n’est pas redémarré.The libraries aren’t uninstalled until the cluster is restarted. 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.Uninstalling libraries that are not installed on the cluster has no impact but is not an error.

Exemple de requêteExample request

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

Structure de la requête Request structure

Nom du champField Name TypeType DescriptionDescription
cluster_idcluster_id STRING Identificateur unique du cluster sur lequel les bibliothèques doivent être désinstallées.Unique identifier for the cluster on which to uninstall these libraries. Ce champ doit obligatoirement être renseigné.This field is required.
librarieslibraries Tableau de bibliothèqueAn array of Library Bibliothèques à désinstaller.The libraries to uninstall.

Structures de données Data structures

Dans cette section :In this section:

ClusterLibraryStatuses ClusterLibraryStatuses

Nom du champField Name TypeType DescriptionDescription
cluster_idcluster_id STRING Identificateur unique pour le cluster.Unique identifier for the cluster.
library_statuseslibrary_statuses Tableau de LibraryFullStatusAn array of LibraryFullStatus État de toutes les bibliothèques sur le cluster.Status of all libraries on the cluster.

Bibliothèque Library

Nom du champField Name TypeType DescriptionDescription
jar, oeuf, WHL ou Pypi ou Maven ou cranjar OR egg OR whl OR pypi OR maven OR cran STRING OU ou ou ou STRING STRING PythonPyPiLibrary ou MavenLibrary ou RCranLibrarySTRING OR STRING OR STRING OR PythonPyPiLibrary OR MavenLibrary OR RCranLibrary Si jar, URI DBFS du fichier jar à installer.If jar, DBFS URI of the jar to be installed. Par exemple : { "jar": "dbfs:/mnt/databricks/library.jar" }.For example: { "jar": "dbfs:/mnt/databricks/library.jar" }.

Si oeuf, URI DBFS de l’oeuf à installer.If egg, DBFS URI of the egg to be installed. Par exemple : { "egg": "dbfs:/my/egg" }.For example: { "egg": "dbfs:/my/egg" }.

Si WHL, URI du volant ou des roues compressées à installer.If whl, URI of the wheel or zipped wheels to be installed. Seuls les URI DBFS sont pris en charge.Only DBFS URIs are supported. Par exemple : { "whl": "dbfs:/my/whl" }.For example: { "whl": "dbfs:/my/whl" }.

Le nom du fichier de roulette doit utiliser la Convention correcte.The wheel file name needs to use the correct convention. Si des roues compressées doivent être installées, le suffixe du nom de fichier doit être .wheelhouse.zip .If zipped wheels are to be installed, the file name suffix should be .wheelhouse.zip.

Si Pypi, spécification d’une bibliothèque PyPI à installer.If pypi, specification of a PyPI library to be installed. Exemple :For example:
{ "package": "simplejson" }

Si Maven, spécification d’une bibliothèque Maven à installer.If maven, specification of a Maven library to be installed. Exemple :For example:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Si cran, spécification d’une bibliothèque CRAN à installer.If cran, specification of a CRAN library to be installed.

LibraryFullStatus LibraryFullStatus

État de la bibliothèque sur un cluster spécifique.The status of the library on a specific cluster.

Nom du champField Name TypeType DescriptionDescription
bibliothèquelibrary BibliothèqueLibrary Identificateur unique de la bibliothèque.Unique identifier for the library.
statusstatus LibraryInstallStatusLibraryInstallStatus État de l’installation de la bibliothèque sur le cluster.Status of installing the library on the cluster.
Cloud vers appareilmessages Tableau de STRINGAn array of STRING Tous les messages d’information et d’avertissement qui se sont produits jusqu’à présent pour cette bibliothèque.All the info and warning messages that have occurred so far for this library.
is_library_for_all_clustersis_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.Whether the library was set to be installed on all clusters via the libraries UI.

MavenLibrary MavenLibrary

Nom du champField Name TypeType DescriptionDescription
coordonnéescoordinates STRING Coordonnées de Maven de type Gradle.Gradle-style Maven coordinates. Par exemple : org.jsoup:jsoup:1.7.2.For example: org.jsoup:jsoup:1.7.2. Ce champ doit obligatoirement être renseigné.This field is required.
référentielrepo STRING Maven référentiel pour installer le package Maven à partir de.Maven repo to install the Maven package from. En cas d’omission, les packages Maven central et Spark sont recherchés.If omitted, both Maven Central Repository and Spark Packages are searched.
exclusionsexclusions Tableau de STRINGAn array of STRING Liste des dépendances à exclure.List of dependences to exclude. Par exemple : ["slf4j:slf4j", "*:hadoop-client"].For example: ["slf4j:slf4j", "*:hadoop-client"].

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

PythonPyPiLibrary PythonPyPiLibrary

Nom du champField Name TypeType DescriptionDescription
packagepackage STRING Nom du package PyPI à installer.The name of the PyPI package to install. Une spécification de version exacte facultative est également prise en charge.An optional exact version specification is also supported. Exemples : simplejson et simplejson==3.8.0.Examples: simplejson and simplejson==3.8.0. Ce champ doit obligatoirement être renseigné.This field is required.
référentielrepo STRING Référentiel dans lequel se trouve le package.The repository where the package can be found. S’il n’est pas spécifié, l’index PIP par défaut est utilisé.If not specified, the default pip index is used.

RCranLibrary RCranLibrary

Nom du champField Name TypeType DescriptionDescription
packagepackage STRING Nom du package CRAN à installer.The name of the CRAN package to install. Ce champ doit obligatoirement être renseigné.This field is required.
référentielrepo STRING Référentiel dans lequel se trouve le package.The repository where the package can be found. S’il n’est pas spécifié, le référentiel CRAN par défaut est utilisé.If not specified, the default CRAN repo is used.

LibraryInstallStatus LibraryInstallStatus

État d’une bibliothèque sur un cluster spécifique.The status of a library on a specific cluster.

ÉtatStatus DescriptionDescription
PENDINGPENDING Aucune action n’a encore été prise pour installer la bibliothèque.No action has yet been taken to install the library. Cet État doit avoir une durée de vie très courte.This state should be very short lived.
RESOLVINGRESOLVING Les métadonnées nécessaires à l’installation de la bibliothèque sont extraites du référentiel fourni.Metadata necessary to install the library is being retrieved from the provided repository.

Pour les bibliothèques jar, oeuf et WHL, cette étape est une opération non opérationnelle.For Jar, Egg, and Whl libraries, this step is a no-op.
L’installationINSTALLING 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.The library is actively being installed, either by adding resources to Spark or executing system commands inside the Spark nodes.
ORDINATEURINSTALLED La bibliothèque a été correctement installée.The library has been successfully installed.
SKIPPEDSKIPPED 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.Installation on a Databricks Runtime 7.0 or above cluster was skipped due to Scala version incompatibility.
FAILEDFAILED Une étape de l’installation a échoué.Some step in installation failed. Vous trouverez plus d’informations dans le champ messages.More information can be found in the messages field.
UNINSTALL_ON_RESTARTUNINSTALL_ON_RESTART La bibliothèque a été marquée pour suppression.The library has been marked for removal. 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.Libraries can be removed only when clusters are restarted, so libraries that enter this state will remain until the cluster is restarted.