API Pustaka 2.0

API Pustaka memungkinkan Anda untuk menginstal dan menghapus instalan pustaka dan mendapatkan status pustaka pada kluster.

Penting

Untuk mengakses API Databricks REST, Anda harus melakukan autentikasi.

Semua status kluster

Titik akhir Metode HTTP
2.0/libraries/all-cluster-statuses GET

Dapatkan status semua pustaka di semua kluster. Status akan tersedia untuk semua pustaka yang diinstal pada kluster melalui API atau antarmuka pengguna pustaka, serta pustaka yang diatur untuk diinstal pada semua kluster melalui antarmuka pengguna pustaka. Jika pustaka telah diatur untuk diinstal pada semua kluster, is_library_for_all_clusters akan menjadi true, bahkan jika pustaka juga diinstal pada kluster khusus ini.

Contoh

Minta

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

Ganti <databricks-instance> dengan nama instans ruang kerja Azure Databricks, misalnya adb-1234567890123456.7.azuredatabricks.net.

Contoh ini menggunakan file .netrc dan jq.

Respons

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

Struktur respons

Nama Bidang Jenis Deskripsi
status Array ClusterLibraryStatuses Daftar status kluster.

Status kluster

Titik akhir Metode HTTP
2.0/libraries/cluster-status GET

Dapatkan status pustaka pada kluster. Status akan tersedia untuk semua pustaka yang diinstal pada kluster melalui API atau antarmuka pengguna pustaka serta pustaka yang diatur untuk diinstal pada semua kluster melalui antarmuka pengguna pustaka. Jika pustaka telah diatur untuk diinstal pada semua kluster, is_library_for_all_clusters akan menjadi true, bahkan jika pustaka juga diinstal pada kluster tersebut.

Contoh

Minta

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

Atau:

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

Ganti:

  • <databricks-instance> dengan nama instans ruang kerja Azure Databricks, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • <cluster-id> dengan ID ruang kerja Azure Databricks kluster, misalnya 1234-567890-example123.

Contoh ini menggunakan file .netrc dan jq.

Respons

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

Struktur permintaan

Nama Bidang Jenis Deskripsi
cluster_id STRING Pengidentifikasi unik kluster yang statusnya harus diambil. Bidang ini wajib diisi.

Struktur respons

Nama Bidang Jenis Deskripsi
cluster_id STRING Pengidentifikasi unik kluster.
library_statuses Array LibraryFullStatus Status semua pustaka di kluster.

Menginstal

Titik akhir Metode HTTP
2.0/libraries/install POST

Menginstal pustaka pada kluster. Proses penginstalan bersifat asinkron - artinya akan selesai di latar belakang setelah permintaan.

Penting

Panggilan ini akan gagal jika kluster dihentikan.

Menginstal pustaka wheel pada kluster ibarat menjalankan perintah pip terhadap file roda langsung pada driver dan eksekutor. Semua dependensi yang ditentukan dalam file setup.py pustaka diinstal dan ini memerlukan nama pustaka untuk memenuhi konvensi penamaan file wheel.

Penginstalan pada eksekutor hanya terjadi ketika tugas baru diluncurkan. Dengan Runtime bahasa umum Databricks 7.1 dan versi di bawahnya, urutan penginstalan pustaka tidak deterministik. Untuk pustaka wheel, Anda dapat memastikan urutan penginstalan deterministik dengan membuat file zip dengan akhiran .wheelhouse.zip yang mencakup semua file wheel.

Contoh

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

Ganti:

  • <databricks-instance> dengan nama instans ruang kerja Azure Databricks, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • Isi install-libraries.json dengan bidang yang sesuai untuk solusi Anda.

Contoh ini menggunakan file .netrc.

Struktur permintaan

Nama Bidang Jenis Deskripsi
cluster_id STRING Pengidentifikasi unik kluster tempat menginstal pustaka ini. Bidang ini wajib diisi.
pustaka Array Pustaka Pustaka yang akan diinstal.

Menghapus instalan

Titik akhir Metode HTTP
2.0/libraries/uninstall POST

Atur pustaka yang akan dihapus instalannya pada kluster. Pustaka tidak akan dihapus instalannya hingga kluster dihidupkan ulang. Menghapus instalan pustaka yang tidak diinstal pada kluster tidak akan berdampak, tetapi bukan merupakan kesalahan.

Contoh

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

Ganti:

  • <databricks-instance> dengan nama instans ruang kerja Azure Databricks, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • Isi uninstall-libraries.json dengan bidang yang sesuai untuk solusi Anda.

Contoh ini menggunakan file .netrc.

Struktur permintaan

Nama Bidang Jenis Deskripsi
cluster_id STRING Pengidentifikasi unik kluster tempat menghapus instalan pustaka ini. Bidang ini wajib diisi.
pustaka Array Pustaka Pustaka yang akan dihapus instalannya.

Struktur data

Di bagian ini:

ClusterLibraryStatuses

Nama Bidang Jenis Deskripsi
cluster_id STRING Pengidentifikasi unik kluster.
library_statuses Array LibraryFullStatus Status semua pustaka di kluster.

Pustaka

Nama Bidang Jenis Deskripsi
jar OR egg OR whl OR pypi OR maven OR cran STRING OR STRING OR STRING OR PythonPyPiLibrary OR MavenLibrary OR RCranLibrary Jika jar, URI JAR yang akan diinstal. URI DBFS dan ADLS (abfss) didukung. Misalnya: { "jar": "dbfs:/mnt/databricks/library.jar" } atau
{ "jar": "abfss://my-bucket/library.jar" }. Jika ADLS digunakan, pastikan bahwa kluster memiliki akses baca di pustaka.

Jika egg, URI egg yang akan diinstal. URI DBFS dan ADLS didukung. Misalnya: { "egg": "dbfs:/my/egg" } atau
{ "egg": "abfss://my-bucket/egg" }.

Jika whl, URI wheel atau wheel yang di-zip yang akan diinstal. URI DBFS dan ADLS didukung. Misalnya: { "whl": "dbfs:/my/whl" } atau
{ "whl": "abfss://my-bucket/whl" }. Jika ADLS digunakan, pastikan bahwa kluster memiliki akses baca di pustaka. Juga nama file wheel perlu menggunakan konvensi penamaan yang benar. Jika wheel yang di-zip harus diinstal, akhiran nama file harus .wheelhouse.zip.

Jika pypi, spesifikasi pustaka PyPI yang akan diinstal. Menentukan bidang repo bersifat opsional dan jika tidak ditentukan, indeks pip default digunakan. Contohnya:
{ "package": "simplejson", "repo": "https://my-repo.com" }

Jika maven, spesifikasi pustaka Maven yang akan diinstal. Contohnya:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Jika cran, spesifikasi pustaka CRAN yang akan diinstal.

LibraryFullStatus

Status pustaka tersebut pada kluster tertentu.

Nama Bidang Jenis Deskripsi
pustaka Pustaka Pengidentifikasi unik pustaka.
status LibraryInstallStatus Status proses penginstalan pustaka di kluster.
pesan Array STRING Semua info dan pesan peringatan yang telah terjadi sejauh ini untuk pustaka ini.
is_library_for_all_clusters BOOL Apakah pustaka diatur untuk diinstal pada semua kluster melalui antarmuka pengguna pustaka.

MavenLibrary

Nama Bidang Jenis Deskripsi
koordinat STRING Koordinat Maven bergaya Gradle. Misalnya: org.jsoup:jsoup:1.7.2. Bidang ini wajib diisi.
repositori STRING Repositori Maven sebagai tempat untuk menginstal paket Maven. Jika dihilangkan, baik Repositori Pusat Maven dan Paket Spark akan dicari.
pengecualian Array STRING Daftar dependensi yang dikecualikan. Misalnya: ["slf4j:slf4j", "*:hadoop-client"].

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

PythonPyPiLibrary

Nama Bidang Jenis Deskripsi
paket STRING Nama paket PyPI untuk yang akan diinstal. Spesifikasi versi opsional yang sama juga didukung. Contoh: simplejson dan simplejson==3.8.0. Bidang ini wajib diisi.
repositori STRING Repositori tempat paket dapat ditemukan. Jika tidak ditentukan, indeks pip default digunakan.

RCranLibrary

Nama Bidang Jenis Deskripsi
paket STRING Nama paket CRAN yang akan diinstal. Bidang ini wajib diisi.
repositori STRING Repositori tempat paket dapat ditemukan. Jika tidak ditentukan, repositori CRAN default digunakan.

LibraryInstallStatus

Status pustaka pada kluster tertentu.

Status Deskripsi
TERTUNDA Belum ada tindakan yang dilakukan untuk menginstal pustaka. Status ini harus berlangsung dengan cepat.
MENYELESAIKAN Metadata yang diperlukan untuk menginstal pustaka sedang diambil dari repositori yang disediakan.

Untuk pustaka Jar, Egg, dan Whl, tidak ada operasi yang diperlukan (no-op).
MENGINSTAL Pustaka sedang berusaha untuk diinstal, baik dengan menambahkan sumber daya ke Spark atau menjalankan perintah sistem di dalam node Spark.
DIINSTAL Pustaka telah berhasil diinstal.
DILOMPATI Penginstalan pada kluster Runtime bahasa umum Databricks 7.0 atau versi di atasnya dilompati karena versi Scala tidak kompatibel.
GAGAL Beberapa langkah dalam proses penginstalan gagal dilakukan. Informasi lebih lanjut dapat ditemukan di bidang pesan.
UNINSTALL_ON_RESTART Pustaka telah ditandai untuk dihapus. Pustaka hanya dapat dihapus ketika kluster dihidupkan ulang, sehingga pustaka yang masuk ke status ini akan tetap ada sampai kluster dihidupkan ulang.