Bibliotek API 2.0

Med biblioteks-API:et kan du installera och avinstallera bibliotek och hämta status för bibliotek i ett kluster.

Viktigt

För att få åtkomst till Databricks REST API:er måste du autentisera.

Alla klusterstatusar

Slutpunkt HTTP-metod
2.0/libraries/all-cluster-statuses GET

Hämta status för alla bibliotek i alla kluster. En status kommer att vara tillgänglig för alla bibliotek som är installerade i kluster via API:et eller bibliotekens användargränssnitt samt bibliotek som ska installeras på alla kluster via biblioteksgränssnittet. Om ett bibliotek har ställts in för att installeras på alla kluster blir det , även om biblioteket is_library_for_all_clusterstrue också har installerats på det här specifika klustret.

Exempel

Förfrågan

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

Ersätt <databricks-instance> med namnet Azure Databricks för <databricks-instance>till exempel adb-1234567890123456.7.azuredatabricks.net .

I det här exemplet används en .netrc-fil och jq.

Svarsåtgärder

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

Svarsstruktur

Fältnamn Typ Description
Status En matris med ClusterLibraryStatuses En lista över klusterstatusar.

Klusterstatus

Slutpunkt HTTP-metod
2.0/libraries/cluster-status GET

Hämta status för bibliotek i ett kluster. En status blir tillgänglig för alla bibliotek som är installerade i klustret via API:et eller biblioteksgränssnittet samt bibliotek som ska installeras på alla kluster via biblioteksgränssnittet. Om ett bibliotek har ställts in för att installeras på alla kluster blir det , även is_library_for_all_clusters om biblioteket också har true installerats i klustret.

Exempel

Förfrågan

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

Eller:

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

Ersätt:

  • <databricks-instance> med namnet Azure Databricks <databricks-instance>till exempel adb-1234567890123456.7.azuredatabricks.net .
  • <cluster-id> med Azure Databricks id för arbetsytan för klustret, till exempel 1234-567890-example123 .

I det här exemplet används en .netrc-fil och jq.

Svarsåtgärder

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

Begärandestruktur

Fältnamn Typ Description
cluster_id STRING Unik identifierare för det kluster vars status ska hämtas. Det här fältet är obligatoriskt.

Svarsstruktur

Fältnamn Typ Description
cluster_id STRING Unik identifierare för klustret.
library_statuses En matris med LibraryFullStatus Status för alla bibliotek i klustret.

Installera

Slutpunkt HTTP-metod
2.0/libraries/install POST

Installera bibliotek i ett kluster. Installationen är asynkron – den slutförs i bakgrunden efter begäran.

Viktigt

Det här anropet misslyckas om klustret avslutas.

Att installera ett hjulbibliotek i ett kluster är som att köra pip kommandot mot hjulfilen direkt på drivrutin och utförare. Alla beroenden som anges i biblioteksfilen installeras och detta kräver att biblioteksnamnet uppfyller setup.pysetup.py.

Installationen på utförarna sker bara när en ny uppgift startas. Med Databricks Runtime 7.1 och lägre är installationsordningen för bibliotek icke-terministisk. För hjulbibliotek kan du säkerställa en deterministisk installationsordning genom att skapa en zip-fil med suffix .wheelhouse.zip som innehåller alla hjulfiler.

Exempel

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

Ersätt:

  • <databricks-instance> med namnet Azure Databricks <databricks-instance>till exempel adb-1234567890123456.7.azuredatabricks.net .
  • Innehållet i install-libraries.json med fält som är lämpliga för din lösning.

I det här exemplet används en .netrc-fil.

Begärandestruktur

Fältnamn Typ Description
cluster_id STRING Unik identifierare för det kluster som biblioteken ska installeras på. Det här fältet är obligatoriskt.
bibliotek En matris med bibliotek Biblioteken som ska installeras.

Avinstallera

Slutpunkt HTTP-metod
2.0/libraries/uninstall POST

Ange bibliotek som ska avinstalleras i ett kluster. Biblioteken avinstalleras inte förrän klustret startas om. Avinstallation av bibliotek som inte är installerade i klustret har ingen effekt men är inte ett fel.

Exempel

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

Ersätt:

  • <databricks-instance> med namnet Azure Databricks <databricks-instance>till exempel adb-1234567890123456.7.azuredatabricks.net .
  • Innehållet i uninstall-libraries.json med fält som är lämpliga för din lösning.

I det här exemplet används en .netrc-fil.

Begärandestruktur

Fältnamn Typ Description
cluster_id STRING Unik identifierare för klustret som biblioteken ska avinstalleras på. Det här fältet är obligatoriskt.
bibliotek En matris med bibliotek Biblioteken som ska avinstalleras.

Datastrukturer

I det här avsnittet:

ClusterLibraryStatuses

Fältnamn Typ Description
cluster_id STRING Unik identifierare för klustret.
library_statuses En matris med LibraryFullStatus Status för alla bibliotek i klustret.

Bibliotek

Fältnamn Typ Description
jar OR wm OR whl OR pypi OR maven OR cran STRING OR STRING OR STRING OR STRING OR STRING OR STRING Om jar, URI för JAR som ska installeras. DBFS- och ADLS abfss () URI:er stöds. Till exempel: { "jar": "dbfs:/mnt/databricks/library.jar" } eller
{ "jar": "abfss://my-bucket/library.jar" }. Om ADLS används kontrollerar du att klustret har läsbehörighet för biblioteket.

Om det finns en URI för den kant som ska installeras. DBFS- och ADLS-URL:er stöds. Till exempel: { "egg": "dbfs:/my/egg" } eller
{ "egg": "abfss://my-bucket/egg" }.

Om whl, URI för hjulet eller zippade hjul som ska installeras. DBFS- och ADLS-URL:er stöds. Till exempel: { "whl": "dbfs:/my/whl" } eller
{ "whl": "abfss://my-bucket/whl" }. Om ADLS används kontrollerar du att klustret har läsbehörighet för biblioteket. Även hjulets filnamn måste använda rätt konvention. Om zippade hjul ska installeras ska filnamnssuffixet vara .wheelhouse.zip .

Om pypi, specifikation av ett PyPI-bibliotek som ska installeras. Det är repo valfritt att ange fältet och om det inte anges används standard-pip-indexet. Exempel:
{ "package": "simplejson", "repo": "https://my-repo.com" }

Om maven, specifikation av ett Maven-bibliotek som ska installeras. Exempel:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Om cran, specifikation av ett CRAN-bibliotek som ska installeras.

LibraryFullStatus

Status för biblioteket i ett specifikt kluster.

Fältnamn Typ Description
bibliotek Bibliotek Unik identifierare för biblioteket.
status LibraryInstallStatus Status för installation av biblioteket i klustret.
meddelanden En matris med STRING All information och alla varningsmeddelanden som har inträffat hittills för det här biblioteket.
is_library_for_all_clusters BOOL Om biblioteket var inställt på att installeras på alla kluster via biblioteksgränssnittet.

MavenLibrary

Fältnamn Typ Description
koordinater STRING Maven-koordinater i Gradle-format. Exempel: org.jsoup:jsoup:1.7.2. Det här fältet är obligatoriskt.
Repo STRING Maven-lagringsplatsen som Maven-paketet ska installeras från. Om detta utelämnas genomsöks både Maven Central Repository och Spark-paket.
Undantag En matris med STRING Lista över beroenden som ska undantas. Exempel: ["slf4j:slf4j", "*:hadoop-client"].

Maven-beroenden: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html .

PythonPyPiLibrary

Fältnamn Typ Description
package STRING Namnet på PyPI-paketet som ska installeras. En valfri exakt versionsspecifikation stöds också. Exempel: simplejson och simplejson==3.8.0 . Det här fältet är obligatoriskt.
Repo STRING Lagringsplatsen där paketet finns. Om inget anges används standard-pip-indexet.

RCranLibrary

Fältnamn Typ Description
package STRING Namnet på CRAN-paketet som ska installeras. Det här fältet är obligatoriskt.
Repo STRING Lagringsplatsen där paketet finns. Om inget anges används standard-CRAN-lagringsplatsen.

LibraryInstallStatus

Status för ett bibliotek i ett specifikt kluster.

Status Beskrivning
PENDING Ingen åtgärd har ännu vidtagits för att installera biblioteket. Det här tillståndet bör vara mycket kortlivat.
LÖSA Metadata som krävs för att installera biblioteket hämtas från den angivna lagringsplatsen.

Det här steget är en no-op för jar-, op- och Whl-bibliotek.
INSTALLERA Biblioteket installeras aktivt, antingen genom att lägga till resurser i Spark eller köra systemkommandon inuti Spark-noderna.
INSTALLERAT Biblioteket har installerats.
ÖVERHOPPADE Installationen på ett Databricks Runtime 7.0 eller senare kluster överhoppades på grund av inkompatibilitet för Scala-versionen.
DET GICK INTE Vissa steg i installationen misslyckades. Mer information finns i fältet meddelanden.
UNINSTALL_ON_RESTART Biblioteket har markerats för borttagning. Bibliotek kan bara tas bort när kluster startas om, så bibliotek som förs in i det här tillståndet finns kvar tills klustret startas om.