Bibliotheek-API

Met de Libraries-API kunt u bibliotheken installeren en verwijderen en de status van bibliotheken in een cluster krijgen.

Belangrijk

U moet u verifiëren voor toegang tot Databricks-REST API's.

Alle clusterstatussen

Eindpunt HTTP-methode
2.0/libraries/all-cluster-statuses GET

Haal de status van alle bibliotheken op alle clusters op. Er is een status beschikbaar voor alle bibliotheken die op clusters zijn geïnstalleerd via de API of de gebruikersinterface van de bibliotheken, evenals bibliotheken die op alle clusters moeten worden geïnstalleerd via de gebruikersinterface van de bibliotheken. Als een bibliotheek is ingesteld om te worden geïnstalleerd op alle clusters, wordt , zelfs als de is_library_for_all_clusters bibliotheek ook op dit specifieke cluster is true geïnstalleerd.

Voorbeeld

Aanvraag

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

Vervang <databricks-instance> door de naam Azure Databricks werkruimte-exemplaar, bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net .

In dit voorbeeld wordt een .netrc-bestand en jq gebruikt.

Antwoord

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

Antwoordstructuur

Veldnaam Type Description
Statussen Een matrix van ClusterLibraryStatuses Een lijst met clusterstatussen.

Clusterstatus

Eindpunt HTTP-methode
2.0/libraries/cluster-status GET

De status van bibliotheken in een cluster op te halen. Er is een status beschikbaar voor alle bibliotheken die op het cluster zijn geïnstalleerd via de API of de gebruikersinterface van de bibliotheken, evenals bibliotheken die zijn ingesteld op alle clusters via de gebruikersinterface van de bibliotheken. Als een bibliotheek is ingesteld om te worden geïnstalleerd op alle clusters, wordt , zelfs als de is_library_for_all_clusters bibliotheek ook op het cluster is true geïnstalleerd.

Voorbeeld

Aanvraag

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

Of:

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

Vervang:

  • <databricks-instance> met de Azure Databricks naam van het werkruimte-exemplaar,bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net .
  • <cluster-id> met de Azure Databricks werkruimte-id van het cluster, bijvoorbeeld 1234-567890-example123 .

In dit voorbeeld wordt een .netrc-bestand en jq gebruikt.

Antwoord

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

Aanvraagstructuur

Veldnaam Type Description
cluster_id STRING De unieke id van het cluster waarvan de status moet worden opgehaald. Dit veld is vereist.

Antwoordstructuur

Veldnaam Type Description
cluster_id STRING Unieke id voor het cluster.
library_statuses Een matrix van LibraryFullStatus Status van alle bibliotheken in het cluster.

Installeren

Eindpunt HTTP-methode
2.0/libraries/install POST

Installeer bibliotheken op een cluster. De installatie is asynchroon. Deze wordt op de achtergrond voltooid na de aanvraag.

Belangrijk

Deze aanroep mislukt als het cluster wordt beëindigd.

Het installeren van een wheel-bibliotheek op een cluster is hetzelfde als het rechtstreeks uitvoeren van de opdracht op het pip wheel-bestand op stuurprogramma's en uitvoerders. Alle afhankelijkheden die zijn opgegeven in het bibliotheekbestand worden geïnstalleerd. Hiervoor moet de bibliotheeknaam voldoen aan de setup.py bestandsnaamconventie van het wheel.

De installatie op de uitvoerders vindt alleen plaats wanneer een nieuwe taak wordt gestart. Met Databricks Runtime 7.1 en lager is de installatieorder van bibliotheken niet-deterministisch. Voor wheel-bibliotheken kunt u een deterministische installatieorder garanderen door een ZIP-bestand met achtervoegsel te maken dat .wheelhouse.zip alle wheel-bestanden bevat.

Voorbeeld

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

Vervang:

  • <databricks-instance> met de Azure Databricks naam van het werkruimte-exemplaar,bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net .
  • De inhoud van install-libraries.json met velden die geschikt zijn voor uw oplossing.

In dit voorbeeld wordt een .netrc-bestand gebruikt.

Aanvraagstructuur

Veldnaam Type Description
cluster_id STRING De unieke id voor het cluster waarop deze bibliotheken moeten worden geïnstalleerd. Dit veld is vereist.
bibliotheken Een matrix van bibliotheek De bibliotheken die moeten worden geïnstalleerd.

Verwijderen

Eindpunt HTTP-methode
2.0/libraries/uninstall POST

Stel bibliotheken in die moeten worden verwijderd uit een cluster. De bibliotheken worden pas verwijderd als het cluster opnieuw is opgestart. Het verwijderen van bibliotheken die niet op het cluster zijn geïnstalleerd, heeft geen invloed, maar is geen fout.

Voorbeeld

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

Vervang:

  • <databricks-instance> met de Azure Databricks naam van het werkruimte-exemplaar,bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net .
  • De inhoud van uninstall-libraries.json met velden die geschikt zijn voor uw oplossing.

In dit voorbeeld wordt een .netrc-bestand gebruikt.

Aanvraagstructuur

Veldnaam Type Description
cluster_id STRING De unieke id voor het cluster waarop deze bibliotheken moeten worden verwijderd. Dit veld is vereist.
bibliotheken Een matrix van bibliotheek De bibliotheken die moeten worden verwijderd.

Gegevensstructuren

In deze sectie:

ClusterLibraryStatuses

Veldnaam Type Description
cluster_id STRING De unieke id voor het cluster.
library_statuses Een matrix van LibraryFullStatus Status van alle bibliotheken in het cluster.

Bibliotheek

Veldnaam Type Description
jar OR- of whl OR pypi OF maven OR cran STRING OR STRING OR STRING OR PythonPyPiLibrary OR MavenLibrary OR RLibnLibrary Als jar, URI van de JAR moet worden geïnstalleerd. DBFS- en ADLS abfss () URI's worden ondersteund. Bijvoorbeeld: { "jar": "dbfs:/mnt/databricks/library.jar" } of
{ "jar": "abfss://my-bucket/library.jar" }. Als ADLS wordt gebruikt, moet u ervoor zorgen dat het cluster leestoegang heeft tot de bibliotheek.

Als u wilt, moet de URI van de te installeren uri worden geïnstalleerd. DBFS- en ADLS-URL's worden ondersteund. Bijvoorbeeld: { "egg": "dbfs:/my/egg" } of
{ "egg": "abfss://my-bucket/egg" }.

Indien whl, URI van het wheel of zipped wheels dat moet worden geïnstalleerd. DBFS- en ADLS-URL's worden ondersteund. Bijvoorbeeld: { "whl": "dbfs:/my/whl" } of
{ "whl": "abfss://my-bucket/whl" }. Als ADLS wordt gebruikt, moet u ervoor zorgen dat het cluster leestoegang heeft tot de bibliotheek. Ook de bestandsnaam van het wheel moet de juiste conventie gebruiken. Als geritste wheels moeten worden geïnstalleerd, moet het achtervoegsel van de bestandsnaam .wheelhouse.zip zijn.

Als pypi, specificatie van een PyPI-bibliotheek moet worden geïnstalleerd. Het opgeven van het veld is optioneel en repo als dit niet wordt opgegeven, wordt de standaard PIP-index gebruikt. Bijvoorbeeld:
{ "package": "simplejson", "repo": "https://my-repo.com" }

Als maven, specificatie van een Maven-bibliotheek die moet worden geïnstalleerd. Bijvoorbeeld:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Indien cran, specificatie van een CRAN-bibliotheek die moet worden geïnstalleerd.

LibraryFullStatus

De status van de bibliotheek op een specifiek cluster.

Veldnaam Type Description
bibliotheek Bibliotheek Unieke id voor de bibliotheek.
status LibraryInstallStatus Status van het installeren van de bibliotheek op het cluster.
berichten Een matrix van STRING Alle informatie en waarschuwingsberichten die tot nu toe zijn opgetreden voor deze bibliotheek.
is_library_for_all_clusters BOOL Of de bibliotheek is ingesteld om te worden geïnstalleerd op alle clusters via de gebruikersinterface van de bibliotheken.

MavenLibrary

Veldnaam Type Description
coördinaten STRING Maven-coördinaten in Gradle-stijl. Bijvoorbeeld: org.jsoup:jsoup:1.7.2. Dit veld is vereist.
Repo STRING Maven-repo om het Maven-pakket van te installeren. Als u dit weggelaten, worden zowel De centrale opslagplaats van Maven als Spark-pakketten doorzocht.
Uitsluitingen Een matrix van STRING Lijst met afhankelijkheid die moet worden uitgesloten. Bijvoorbeeld: ["slf4j:slf4j", "*:hadoop-client"].

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

PythonPyPiLibrary

Veldnaam Type Description
pakket STRING De naam van het PyPI-pakket dat moet worden geïnstalleerd. Een optionele exacte versiespecificatie wordt ook ondersteund. Voorbeelden: simplejson en simplejson==3.8.0 . Dit veld is vereist.
Repo STRING De opslagplaats waar het pakket kan worden gevonden. Als dit niet wordt opgegeven, wordt de standaard PIP-index gebruikt.

RBiblionLibrary

Veldnaam Type Description
pakket STRING De naam van het CRAN-pakket dat moet worden geïnstalleerd. Dit veld is vereist.
Repo STRING De opslagplaats waar het pakket kan worden gevonden. Als dit niet wordt opgegeven, wordt de standaard CRAN-repo gebruikt.

LibraryInstallStatus

De status van een bibliotheek in een specifiek cluster.

Status Beschrijving
PENDING Er is nog geen actie ondernomen om de bibliotheek te installeren. Deze status moet een zeer korte duur hebben.
OPLOSSEN De metagegevens die nodig zijn om de bibliotheek te installeren, worden opgehaald uit de opgegeven opslagplaats.

Deze stap is een no-op voor jar-, Jar- en Whl-bibliotheken.
INSTALLEREN De bibliotheek wordt actief geïnstalleerd door resources toe te voegen aan Spark of door systeemopdrachten in de Spark-knooppunten uit te voeren.
GEÏNSTALLEERD De bibliotheek is geïnstalleerd.
OVERGESLAGEN Installatie op een Databricks Runtime 7.0 of hoger cluster is overgeslagen vanwege incompatibiliteit met de Scala-versie.
MISLUKT Een stap in de installatie is mislukt. Meer informatie vindt u in het veld Berichten.
UNINSTALL_ON_RESTART De bibliotheek is gemarkeerd voor verwijdering. Bibliotheken kunnen alleen worden verwijderd wanneer clusters opnieuw worden opgestart, zodat bibliotheken die deze status invoeren, blijven bestaan totdat het cluster opnieuw wordt opgestart.