Bagikan melalui


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 dalam sync 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 default pip 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*