Bibliotheks-APILibraries API

Die Bibliotheken-API ermöglicht es Ihnen, Bibliotheken zu installieren und zu deinstallieren und den Status von Bibliotheken in einem Cluster zu erhalten.The Libraries API allows you to install and uninstall libraries and get the status of libraries on a cluster.

Wichtig

Für den Zugriff auf Databricks-REST-APIs müssen Sie sich authentifizieren.To access Databricks REST APIs, you must authenticate.

Alle Cluster Status All cluster statuses

EndpunktEndpoint HTTP-MethodeHTTP Method
2.0/libraries/all-cluster-statuses GET

Den Status aller Bibliotheken in allen Clustern erhalten.Get the status of all libraries on all clusters. Der Status wird für alle Bibliotheken, die auf Clustern installiert sind, über die API oder über die Benutzeroberfläche der Bibliotheken sowie durch Bibliotheken, die auf allen Clustern installiert sind, über die Benutzeroberfläche der Bibliotheken zur Verfügung gestellt.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. Wenn eine Bibliothek für die Installation auf allen Clustern festgelegt wurde, wird auch dann verwendet is_library_for_all_clusters true , wenn die Bibliothek auch auf diesem speziellen Cluster installiert wurde.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.

BeispielantwortExample 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
        }
      ]
    }
  ]
}

Antwort Struktur Response structure

FeldnameField Name typeType BeschreibungDescription
statusesstatuses Ein Array von clusterlibrarystatusAn array of ClusterLibraryStatuses Eine Liste der Cluster Status.A list of cluster statuses.

Cluster Status Cluster status

EndpunktEndpoint HTTP-MethodeHTTP Method
2.0/libraries/cluster-status GET

Den Status der Bibliotheken in einem Cluster erhalten.Get the status of libraries on a cluster. Ein Status wird für alle auf dem Cluster installierten Bibliotheken über die API oder die Benutzeroberfläche der Bibliotheken sowie für Bibliotheken bereitgestellt, die auf allen Clustern über die Benutzeroberfläche der Bibliotheken installiert werden.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. Wenn eine Bibliothek für die Installation auf allen Clustern festgelegt wurde, wird auch dann verwendet is_library_for_all_clusters true , wenn die Bibliothek auch auf dem Cluster installiert wurde.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.

BeispielanforderungExample request

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

BeispielantwortExample 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
    }
  ]
}

Anforderungs Struktur Request structure

FeldnameField Name typeType BeschreibungDescription
cluster_idcluster_id STRING Eindeutiger Bezeichner des Clusters, dessen Status abgerufen werden soll.Unique identifier of the cluster whose status should be retrieved. Dieses Feld ist erforderlich.This field is required.

Antwort Struktur Response structure

FeldnameField Name typeType BeschreibungDescription
cluster_idcluster_id STRING Eindeutiger Bezeichner für den Cluster.Unique identifier for the cluster.
library_statuseslibrary_statuses Ein Array von libraryfullstatusAn array of LibraryFullStatus Status aller Bibliotheken im Cluster.Status of all libraries on the cluster.

Installieren von Install

EndpunktEndpoint HTTP-MethodeHTTP Method
2.0/libraries/install POST

Installieren Sie Bibliotheken in einem Cluster.Install libraries on a cluster. Die Installation erfolgt asynchron. Sie wird im Hintergrund nach der Anforderung abgeschlossen.The installation is asynchronous - it completes in the background after the request.

Wichtig

Bei diesem Befehl tritt ein Fehler auf, wenn der Cluster beendet wird.This call will fail if the cluster is terminated.

Das Installieren einer radbibliothek auf einem Cluster ähnelt dem Ausführen des pip Befehls für die raddatei direkt für Treiber und Executors.Installing a wheel library on a cluster is like running the pip command against the wheel file directly on driver and executors. Alle Abhängigkeiten, die in der Bibliotheks setup.py Datei angegeben sind, werden installiert, und der Bibliotheksname ist erforderlich, um die " Wheel File Name"-Konvention zu erfüllen.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.

Die Installation der Executors erfolgt nur, wenn eine neue Aufgabe gestartet wird.The installation on the executors happens only when a new task is launched. Bei Databricks Runtime 7,1 und niedriger ist die Installations Reihenfolge der Bibliotheken nicht deterministisch.With Databricks Runtime 7.1 and below, the installation order of libraries is nondeterministic. Für radbibliotheken können Sie eine deterministische Installations Reihenfolge sicherstellen, indem Sie eine ZIP-Datei mit einem Suffix erstellen .wheelhouse.zip , das alle Wheel-Dateien enthält.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.

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

Anforderungs Struktur Request structure

FeldnameField Name typeType BeschreibungDescription
cluster_idcluster_id STRING Eindeutiger Bezeichner für den Cluster, auf dem diese Bibliotheken installiert werden sollen.Unique identifier for the cluster on which to install these libraries. Dieses Feld ist erforderlich.This field is required.
librarieslibraries Ein Array der BibliothekAn array of Library Die zu installier-Bibliotheken.The libraries to install.

Deinstallieren Uninstall

EndpunktEndpoint HTTP-MethodeHTTP Method
2.0/libraries/uninstall POST

Legen Sie Bibliotheken fest, die auf einem Cluster deinstalliert werden sollen.Set libraries to be uninstalled on a cluster. Die Bibliotheken werden erst deinstalliert, wenn der Cluster neu gestartet wird.The libraries aren’t uninstalled until the cluster is restarted. Das Deinstallieren von Bibliotheken, die nicht auf dem Cluster installiert sind, hat keine Auswirkung, aber es handelt sich nicht um einen Fehler.Uninstalling libraries that are not installed on the cluster has no impact but is not an error.

BeispielanforderungExample request

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

Anforderungs Struktur Request structure

FeldnameField Name typeType BeschreibungDescription
cluster_idcluster_id STRING Eindeutiger Bezeichner für den Cluster, auf dem diese Bibliotheken deinstalliert werden sollen.Unique identifier for the cluster on which to uninstall these libraries. Dieses Feld ist erforderlich.This field is required.
librarieslibraries Ein Array der BibliothekAn array of Library Die zu deinstallierenden Bibliotheken.The libraries to uninstall.

Datenstrukturen Data structures

Inhalt dieses Abschnitts:In this section:

Clusterlibrarystatus ClusterLibraryStatuses

FeldnameField Name typeType BeschreibungDescription
cluster_idcluster_id STRING Eindeutiger Bezeichner für den Cluster.Unique identifier for the cluster.
library_statuseslibrary_statuses Ein Array von libraryfullstatusAn array of LibraryFullStatus Status aller Bibliotheken im Cluster.Status of all libraries on the cluster.

Bibliothek Library

FeldnameField Name typeType BeschreibungDescription
JAR, Ei, WHL oder pypi oder Maven oder cranjar OR egg OR whl OR pypi OR maven OR cran STRING Oder STRING oder STRING oder pythonpypilibrary oder mavenlibrary oder rcranlibrarySTRING OR STRING OR STRING OR PythonPyPiLibrary OR MavenLibrary OR RCranLibrary Wenn jar, der dBFS-URI der zu installierenden jar-.If jar, DBFS URI of the jar to be installed. Beispiel: { "jar": "dbfs:/mnt/databricks/library.jar" }.For example: { "jar": "dbfs:/mnt/databricks/library.jar" }.

Wenn "Ei", dBFS-URI des zu installierenden Ei.If egg, DBFS URI of the egg to be installed. Beispiel: { "egg": "dbfs:/my/egg" }.For example: { "egg": "dbfs:/my/egg" }.

Wenn WHL, URI des zu installierenden Rades oder gezippten Wheels.If whl, URI of the wheel or zipped wheels to be installed. Es werden nur dBFS-URIs unterstützt.Only DBFS URIs are supported. Beispiel: { "whl": "dbfs:/my/whl" }.For example: { "whl": "dbfs:/my/whl" }.

Der Name der raddatei muss die richtige Konventionverwenden.The wheel file name needs to use the correct convention. Wenn gezippte Räder installiert werden sollen, sollte das Dateiname Suffix lauten .wheelhouse.zip .If zipped wheels are to be installed, the file name suffix should be .wheelhouse.zip.

Wenn pypi ist, wird eine zu installierende pypi-Bibliothek angegeben.If pypi, specification of a PyPI library to be installed. Beispiel:For example:
{ "package": "simplejson" }

Wenn Maven ist, wird eine zu installierende Maven-Bibliothek angegeben.If maven, specification of a Maven library to be installed. Beispiel:For example:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Wenn cran, die Angabe einer zu installierenden cran-Bibliothek.If cran, specification of a CRAN library to be installed.

Libraryfullstatus LibraryFullStatus

Der Status der Bibliothek in einem bestimmten Cluster.The status of the library on a specific cluster.

FeldnameField Name typeType BeschreibungDescription
Bibliotheklibrary BibliothekLibrary Eindeutiger Bezeichner für die Bibliothek.Unique identifier for the library.
statusstatus LibraryinstallstatusLibraryInstallStatus Der Status der Installation der Bibliothek auf dem Cluster.Status of installing the library on the cluster.
Cloud an das Gerätmessages Ein Array von STRINGAn array of STRING Alle Informationen und Warnmeldungen, die bisher für diese Bibliothek aufgetreten sind.All the info and warning messages that have occurred so far for this library.
is_library_for_all_clustersis_library_for_all_clusters BOOL Gibt an, ob die Bibliothek für die Installation auf allen Clustern über die Benutzeroberfläche der Bibliotheken festgelegt wurde.Whether the library was set to be installed on all clusters via the libraries UI.

Mavenlibrary MavenLibrary

FeldnameField Name typeType BeschreibungDescription
Koordinatencoordinates STRING Maven-Koordinaten im gradle-Format.Gradle-style Maven coordinates. Beispiel: org.jsoup:jsoup:1.7.2.For example: org.jsoup:jsoup:1.7.2. Dieses Feld ist erforderlich.This field is required.
einbauenrepo STRING Maven-Repository, von dem das Maven-Paket installiert werden soll.Maven repo to install the Maven package from. Wenn dieser nicht angegeben wird, werden sowohl das zentrale Maven-Repository als auch die Spark-PaketeIf omitted, both Maven Central Repository and Spark Packages are searched.
Ausschlüsseexclusions Ein Array von STRINGAn array of STRING Liste der auszuschließenden Abhängigkeiten.List of dependences to exclude. Beispiel: ["slf4j:slf4j", "*:hadoop-client"].For example: ["slf4j:slf4j", "*:hadoop-client"].

Maven-Abhängigkeits Ausschlüsse: 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

FeldnameField Name typeType BeschreibungDescription
packagepackage STRING Der Name des zu installierenden pypi-Pakets.The name of the PyPI package to install. Eine optionale genaue Versions Spezifikation wird ebenfalls unterstützt.An optional exact version specification is also supported. Beispiele:: simplejson und simplejson==3.8.0.Examples: simplejson and simplejson==3.8.0. Dieses Feld ist erforderlich.This field is required.
einbauenrepo STRING Das Repository, in dem sich das Paket befindet.The repository where the package can be found. Wenn nicht angegeben, wird der standardmäßige PIP-Index verwendet.If not specified, the default pip index is used.

Rcranlibrary RCranLibrary

FeldnameField Name typeType BeschreibungDescription
packagepackage STRING Der Name des zu installierenden cran-Pakets.The name of the CRAN package to install. Dieses Feld ist erforderlich.This field is required.
einbauenrepo STRING Das Repository, in dem sich das Paket befindet.The repository where the package can be found. Wenn kein Wert angegeben ist, wird das Standard-cran-Repository verwendet.If not specified, the default CRAN repo is used.

Libraryinstallstatus LibraryInstallStatus

Der Status einer Bibliothek in einem bestimmten Cluster.The status of a library on a specific cluster.

StatusStatus BeschreibungDescription
PENDING (AUSSTEHEND)PENDING Es wurde noch keine Aktion ausgeführt, um die Bibliothek zu installieren.No action has yet been taken to install the library. Dieser Zustand sollte sehr kurzlebig sein.This state should be very short lived.
RESOLVINGRESOLVING Metadaten, die für die Installation der Bibliothek erforderlich sind, werden aus dem bereitgestellten Repository abgerufen.Metadata necessary to install the library is being retrieved from the provided repository.

Bei jar-, Ei-und WHL-Bibliotheken ist dieser Schritt ein No-op-Vorgang.For Jar, Egg, and Whl libraries, this step is a no-op.
InstallierenINSTALLING Die Bibliothek wird aktiv installiert, entweder durch das Hinzufügen von Ressourcen zu Spark oder durch das Ausführen von System Befehlen innerhalb der Spark-Knoten.The library is actively being installed, either by adding resources to Spark or executing system commands inside the Spark nodes.
LierterINSTALLED Die Bibliothek wurde erfolgreich installiert.The library has been successfully installed.
ÜBERSPRUNGENSKIPPED Die Installation auf einem Databricks Runtime 7,0 oder höher wurde aufgrund der Inkompatibilität der Scala-Version übersprungen.Installation on a Databricks Runtime 7.0 or above cluster was skipped due to Scala version incompatibility.
FAILEDFAILED Ein Fehler bei der Installation ist aufgetreten.Some step in installation failed. Weitere Informationen finden Sie im Feld Nachrichten.More information can be found in the messages field.
UNINSTALL_ON_RESTARTUNINSTALL_ON_RESTART Die Bibliothek wurde zum Entfernen gekennzeichnet.The library has been marked for removal. Bibliotheken können nur entfernt werden, wenn Cluster neu gestartet werden, sodass Bibliotheken, die in diesen Zustand eintreten, so lange beibehalten werden, bis der Cluster neu gestartet wird.Libraries can be removed only when clusters are restarted, so libraries that enter this state will remain until the cluster is restarted.