Interfejs API bibliotek 2.0

Interfejs API bibliotek umożliwia instalowanie i odinstalowywanie bibliotek oraz uzyskiwanie stanu bibliotek w klastrze.

Ważne

Aby uzyskać dostęp do interfejsów API REST, należy uwierzytelnić się.

Wszystkie stany klastra

Punkt końcowy Metoda HTTP
2.0/libraries/all-cluster-statuses GET

Pobierz stan wszystkich bibliotek we wszystkich klastrach. Stan będzie dostępny dla wszystkich bibliotek zainstalowanych w klastrach za pośrednictwem interfejsu API lub interfejsu użytkownika bibliotek, a także bibliotek ustawionych do zainstalowania we wszystkich klastrach za pośrednictwem interfejsu użytkownika bibliotek. Jeśli biblioteka została ustawiona tak, aby była zainstalowana we wszystkich klastrach, wartość będzie miała wartość , nawet jeśli biblioteka została również zainstalowana is_library_for_all_clusterstrue w tym określonym klastrze.

Przykład

Żądanie

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

Zastąp <databricks-instance> nazwą Azure Databricks obszaru <databricks-instance>na przykład adb-1234567890123456.7.azuredatabricks.net .

W tym przykładzie użyto pliku .netrc i pliku jq.

Reakcja

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

Struktura odpowiedzi

Nazwa pola Typ Opis
Statusy Tablica clusterLibraryStatuses Lista stanów klastra.

Stan klastra

Punkt końcowy Metoda HTTP
2.0/libraries/cluster-status GET

Uzyskiwanie stanu bibliotek w klastrze. Stan będzie dostępny dla wszystkich bibliotek zainstalowanych w klastrze za pośrednictwem interfejsu API lub interfejsu użytkownika bibliotek, a także bibliotek ustawionych do zainstalowania we wszystkich klastrach za pośrednictwem interfejsu użytkownika bibliotek. Jeśli biblioteka została ustawiona tak, aby była zainstalowana we wszystkich klastrach, wartość będzie miała wartość , nawet jeśli biblioteka is_library_for_all_clusterstrue została również zainstalowana w klastrze.

Przykład

Żądanie

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

Lub:

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

Zastąp:

  • <databricks-instance> z nazwą Azure Databricks <databricks-instance>na przykład adb-1234567890123456.7.azuredatabricks.net .
  • <cluster-id> identyfikatorem Azure Databricks klastra, na przykład 1234-567890-example123 .

W tym przykładzie użyto pliku .netrc i pliku jq.

Reakcja

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

Struktura żądań

Nazwa pola Typ Opis
cluster_id STRING Unikatowy identyfikator klastra, którego stan powinien zostać pobrany. To pole jest wymagane.

Struktura odpowiedzi

Nazwa pola Typ Opis
cluster_id STRING Unikatowy identyfikator klastra.
library_statuses Tablica libraryFullStatus Stan wszystkich bibliotek w klastrze.

Zainstalować

Punkt końcowy Metoda HTTP
2.0/libraries/install POST

Instalowanie bibliotek w klastrze. Instalacja jest asynchroniczna — kończy się w tle po żądaniu.

Ważne

To wywołanie zakończy się niepowodzeniem, jeśli klaster zostanie zakończony.

Instalowanie biblioteki Wheel w klastrze jest podobne do uruchamiania polecenia względem pliku pip wheel bezpośrednio w sterowniku i plikach wykonawczych. Instalowane są wszystkie zależności określone w pliku biblioteki, co wymaga nazwy biblioteki w celu spełnienia setup.py konwencji setup.py

Instalacja w wykonaniach odbywa się tylko wtedy, gdy zostanie uruchomione nowe zadanie. W Databricks Runtime 7.1 i poniższych kolejność instalacji bibliotek jest niedeterministyczna. W przypadku bibliotek wheel można zapewnić deterministyczną kolejność instalacji, tworząc plik zip z sufiksem, który zawiera .wheelhouse.zip wszystkie pliki wheel.

Przykład

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

Zastąp:

  • <databricks-instance> z nazwą Azure Databricks <databricks-instance>na przykład adb-1234567890123456.7.azuredatabricks.net .
  • Zawartość pliku install-libraries.json z polami odpowiednimi dla Twojego rozwiązania.

W tym przykładzie użyto pliku .netrc.

Struktura żądań

Nazwa pola Typ Opis
cluster_id STRING Unikatowy identyfikator klastra, w którym mają być zainstalowane te biblioteki. To pole jest wymagane.
biblioteki Tablica biblioteki Biblioteki do zainstalowania.

Odinstalować

Punkt końcowy Metoda HTTP
2.0/libraries/uninstall POST

Ustaw biblioteki do odinstalowania w klastrze. Biblioteki nie ’ są odinstalowywać do momentu ponownego uruchomienia klastra. Odinstalowywanie bibliotek, które nie są zainstalowane w klastrze, nie ma wpływu, ale nie jest błędem.

Przykład

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

Zastąp:

  • <databricks-instance> z nazwą Azure Databricks <databricks-instance>na przykład adb-1234567890123456.7.azuredatabricks.net .
  • Zawartość pliku uninstall-libraries.json z polami odpowiednimi dla Twojego rozwiązania.

W tym przykładzie użyto pliku .netrc.

Struktura żądań

Nazwa pola Typ Opis
cluster_id STRING Unikatowy identyfikator klastra, w którym mają zostać odinstalowane te biblioteki. To pole jest wymagane.
biblioteki Tablica biblioteki Biblioteki do odinstalowania.

Struktury danych

W tej sekcji:

ClusterLibraryStatuses

Nazwa pola Typ Opis
cluster_id STRING Unikatowy identyfikator klastra.
library_statuses Tablica libraryFullStatus Stan wszystkich bibliotek w klastrze.

Biblioteki

Nazwa pola Typ Opis
jar OR or whl OR pypi OR maven OR cran STRING OR STRING LUB STRING LUB STRINGSTRING LUB STRING Jeśli jest to jar, jego URI ma zostać zainstalowany. Obsługiwane są interfejsy URIS DBFS i ADLS abfss (). Na przykład: { "jar": "dbfs:/mnt/databricks/library.jar" } lub
{ "jar": "abfss://my-bucket/library.jar" }. Jeśli jest używana usługa ADLS, upewnij się, że klaster ma dostęp do odczytu w bibliotece.

Jeśli chcesz, zaimki URI do zainstalowania. Obsługiwane są adresy URL usług DBFS i ADLS. Na przykład: { "egg": "dbfs:/my/egg" } lub
{ "egg": "abfss://my-bucket/egg" }.

Jeśli whl, URI koła lub zdjęte koła do zainstalowania. Obsługiwane są adresy URL usług DBFS i ADLS. Na przykład: { "whl": "dbfs:/my/whl" } lub
{ "whl": "abfss://my-bucket/whl" }. Jeśli jest używana usługa ADLS, upewnij się, że klaster ma dostęp do odczytu w bibliotece. Ponadto nazwa pliku wheel musi używać poprawnej konwencji. Jeśli mają być zainstalowane sufiksy nazw plików z zipami, powinien to być sufiks .wheelhouse.zip .

Jeśli pypi, specyfikacja biblioteki PyPI do zainstalowania. Określenie pola repo jest opcjonalne i jeśli nie zostanie określony, zostanie użyty domyślny indeks pip. Przykład:
{ "package": "simplejson", "repo": "https://my-repo.com" }

Jeśli maven, specyfikacja biblioteki Maven do zainstalowania. Przykład:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Jeśli cran, specyfikacja biblioteki CRAN do zainstalowania.

LibraryFullStatus

Stan biblioteki w określonym klastrze.

Nazwa pola Typ Opis
biblioteka Biblioteki Unikatowy identyfikator biblioteki.
status LibraryInstallStatus Stan instalacji biblioteki w klastrze.
z chmury do urządzenia Tablica STRING Wszystkie informacje i komunikaty ostrzegawcze, które wystąpiły do tej pory dla tej biblioteki.
is_library_for_all_clusters BOOL Określa, czy biblioteka została ustawiona do zainstalowania we wszystkich klastrach za pośrednictwem interfejsu użytkownika bibliotek.

MavenLibrary

Nazwa pola Typ Opis
współrzędne STRING Współrzędne Maven w stylu gradle. Na przykład: org.jsoup:jsoup:1.7.2. To pole jest wymagane.
Repo STRING w celu zainstalowania pakietu Maven. W przypadku pominięcia wyszukiwane są zarówno centralne repozytorium Maven, jak i pakiety platformy Spark.
Wykluczenia Tablica STRING Lista zależności do wykluczenia. Na przykład: ["slf4j:slf4j", "*:hadoop-client"].

Wykluczenia zależności maven: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html .

PythonPyPiLibrary

Nazwa pola Typ Opis
package STRING Nazwa pakietu PyPI do zainstalowania. Obsługiwana jest również opcjonalna dokładna specyfikacja wersji. Przykłady: simplejson i simplejson==3.8.0 . To pole jest wymagane.
Repo STRING Repozytorium, w którym można znaleźć pakiet. Jeśli nie zostanie określony, zostanie użyty domyślny indeks pip.

RCranLibrary (RCranLibrary)

Nazwa pola Typ Opis
package STRING Nazwa pakietu CRAN do zainstalowania. To pole jest wymagane.
Repo STRING Repozytorium, w którym można znaleźć pakiet. Jeśli nie zostanie określony, zostanie użyte domyślne repo CRAN.

LibraryInstallStatus

Stan biblioteki w określonym klastrze.

Stan Opis
PENDING Nie została jeszcze podjęta żadna akcja instalacji biblioteki. Ten stan powinien być bardzo krótki.
ROZWIĄZYWANIE Metadane niezbędne do zainstalowania biblioteki są pobierane z podanego repozytorium.

W przypadku bibliotek Jar, Whl i Whl ten krok jest nieopłacący.
INSTALOWANIE Biblioteka jest aktywnie instalowana przez dodanie zasobów do platformy Spark lub wykonanie poleceń systemowych wewnątrz węzłów platformy Spark.
ZAINSTALOWANA Biblioteka została pomyślnie zainstalowana.
POMINIĘTE Instalacja w klastrze Databricks Runtime 7.0 lub nowsza została pominięta z powodu niezgodności wersji Scala.
NIEPOWODZENIE Niektóre kroki instalacji nie powiodły się. Więcej informacji można znaleźć w polu komunikatów.
UNINSTALL_ON_RESTART Biblioteka została oznaczona do usunięcia. Biblioteki można usuwać tylko po ponownym uruchomieniu klastrów, więc biblioteki, które wejdą w ten stan, pozostaną do momentu ponownego uruchomienia klastra.