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, misalnyaadb-1234567890123456.7.azuredatabricks.net.<cluster-id>dengan ID ruang kerja Azure Databricks kluster, misalnya1234-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, misalnyaadb-1234567890123456.7.azuredatabricks.net.- Isi
install-libraries.jsondengan 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, misalnyaadb-1234567890123456.7.azuredatabricks.net.- Isi
uninstall-libraries.jsondengan 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
- Pustaka
- LibraryFullStatus
- MavenLibrary
- PythonPyPiLibrary
- RCranLibrary
- LibraryInstallStatus
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. |