Dependensi pustaka Bundel Aset Databricks
Artikel ini menguraikan sintaks untuk mendeklarasikan dependensi pustaka Bundel Aset Databricks. Bundel memungkinkan manajemen terprogram alur kerja Azure Databricks. Lihat Apa itu Bundel Aset Databricks?.
Selain notebook, pekerjaan Azure Databricks Anda kemungkinan akan bergantung pada pustaka agar berfungsi seperti yang diharapkan. Dependensi Bundel Aset Databricks untuk pengembangan lokal ditentukan dalam requirements*.txt
file di akar proyek bundel, tetapi dependensi pustaka tugas pekerjaan dideklarasikan dalam file konfigurasi bundel Anda dan sering kali diperlukan sebagai bagian dari spesifikasi jenis tugas pekerjaan.
Bundel menyediakan dukungan untuk dependensi pustaka berikut untuk pekerjaan Azure Databricks:
- File roda Python
- File JAR (Java atau Scala)
- Paket PyPI, Maven, atau CRAN
Catatan
Apakah pustaka didukung atau tidak tergantung pada konfigurasi kluster untuk pekerjaan dan sumber pustaka. Untuk informasi dukungan pustaka lengkap, lihat Pustaka.
File roda Python
Untuk menambahkan file roda Python ke tugas pekerjaan, dalam libraries
menentukan whl
pemetaan untuk setiap pustaka yang akan diinstal. Anda dapat menginstal file roda dari file ruang kerja, volume Katalog Unity, penyimpanan objek cloud, atau jalur file lokal.
Penting
Pustaka dapat diinstal dari DBFS saat menggunakan Databricks Runtime 14.3 LTS dan di bawahnya. Namun, setiap pengguna ruang kerja dapat memodifikasi file pustaka yang disimpan di DBFS. Untuk meningkatkan keamanan pustaka di ruang kerja Azure Databricks, menyimpan file pustaka di akar DBFS tidak digunakan lagi dan dinonaktifkan secara default di Databricks Runtime 15.1 ke atas. Lihat Menyimpan pustaka di akar DBFS tidak digunakan lagi dan dinonaktifkan secara default.
Sebagai gantinya, Databricks merekomendasikan untuk mengunggah semua pustaka, termasuk pustaka Python, file JAR, dan konektor Spark, ke file ruang kerja atau volume Katalog Unity, atau menggunakan repositori paket pustaka. Jika beban kerja Anda tidak mendukung pola ini, Anda juga dapat menggunakan pustaka yang disimpan di penyimpanan objek cloud.
Contoh berikut menunjukkan cara menginstal tiga file roda Python untuk tugas pekerjaan.
- File roda Python pertama sebelumnya diunggah ke ruang kerja Azure Databricks atau ditambahkan sebagai
include
item dalamsync
pemetaan, dan berada di folder lokal yang sama dengan file konfigurasi bundel. - File roda Python kedua berada di lokasi file ruang kerja yang ditentukan di ruang kerja Azure Databricks.
- File roda Python ketiga sebelumnya diunggah ke volume bernama
my-volume
di ruang kerja Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
File JAR
Untuk menambahkan file JAR ke tugas pekerjaan, dalam libraries
menentukan jar
pemetaan untuk setiap pustaka yang akan diinstal. Anda dapat menginstal JAR dari file ruang kerja, volume Katalog Unity, penyimpanan objek cloud, atau jalur file lokal.
Penting
Pustaka dapat diinstal dari DBFS saat menggunakan Databricks Runtime 14.3 LTS dan di bawahnya. Namun, setiap pengguna ruang kerja dapat memodifikasi file pustaka yang disimpan di DBFS. Untuk meningkatkan keamanan pustaka di ruang kerja Azure Databricks, menyimpan file pustaka di akar DBFS tidak digunakan lagi dan dinonaktifkan secara default di Databricks Runtime 15.1 ke atas. Lihat Menyimpan pustaka di akar DBFS tidak digunakan lagi dan dinonaktifkan secara default.
Sebagai gantinya, Databricks merekomendasikan untuk mengunggah semua pustaka, termasuk pustaka Python, file JAR, dan konektor Spark, ke file ruang kerja atau volume Katalog Unity, atau menggunakan repositori paket pustaka. Jika beban kerja Anda tidak mendukung pola ini, Anda juga dapat menggunakan pustaka yang disimpan di penyimpanan objek cloud.
Contoh berikut menunjukkan cara menginstal file JAR yang sebelumnya diunggah ke volume bernama my-volume
di ruang kerja Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Paket PyPI
Untuk menambahkan paket PyPI ke definisi tugas pekerjaan, di libraries
, tentukan pypi
pemetaan untuk setiap paket PyPI yang akan diinstal. Untuk setiap pemetaan, tentukan hal berikut:
- Untuk
package
, tentukan nama paket PyPI yang akan diinstal. Spesifikasi versi opsional yang sama juga didukung. - Secara opsional, untuk
repo
, tentukan repositori tempat paket PyPI dapat ditemukan. Jika tidak ditentukan, indeks defaultpip
digunakan (https://pypi.org/simple/).
Contoh berikut menunjukkan cara menginstal dua paket PyPI.
- Paket PyPI pertama menggunakan versi paket yang ditentukan dan indeks default
pip
. - Paket PyPI kedua menggunakan versi paket yang ditentukan dan indeks yang ditentukan
pip
secara eksplisit.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Paket Maven
Untuk menambahkan paket Maven ke definisi tugas pekerjaan, di libraries
, tentukan maven
pemetaan untuk setiap paket Maven yang akan diinstal. Untuk setiap pemetaan, tentukan hal berikut:
- Untuk
coordinates
, tentukan koordinat Maven bergaya Gradle untuk paket. - Secara opsional, untuk
repo
, tentukan repositori Maven untuk menginstal paket Maven. Jika dihilangkan, Repositori Pusat Maven dan Repositori Paket Spark dicari. - Secara opsional, untuk
exclusions
, tentukan dependensi apa pun untuk dikecualikan secara eksplisit. Lihat Pengecualian dependensi Maven.
Contoh berikut menunjukkan cara menginstal dua paket Maven.
- Paket Maven pertama menggunakan koordinat paket yang ditentukan dan mencari paket ini di Repositori Pusat Maven dan Repositori Paket Spark.
- Paket Maven kedua menggunakan koordinat paket yang ditentukan, mencari paket ini hanya di Repositori Pusat Maven, dan tidak menyertakan dependensi paket ini yang cocok dengan pola yang ditentukan.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*