Bagikan melalui


Mengembangkan file roda Python menggunakan Bundel Aset Databricks

Artikel ini menjelaskan cara membangun, menyebarkan, dan menjalankan file wheel Python sebagai bagian dari proyek Databricks Asset Bundle. Lihat Apa itu Bundel Aset Databricks?.

Untuk contoh konfigurasi yang membangun JAR dan mengunggahnya ke Unity Catalog, lihat Bundel yang mengunggah file JAR ke Unity Catalog.

Persyaratan

Keputusan: Buat bundel secara manual atau dengan menggunakan templat

Tentukan apakah Anda ingin membuat bundel pemula dengan menggunakan templat atau membuat bundel secara manual. Membuat bundel dengan menggunakan templat lebih cepat dan lebih mudah, tetapi bundel mungkin menghasilkan konten yang tidak diperlukan, dan pengaturan default bundel harus disesuaikan lebih lanjut untuk aplikasi nyata. Membuat bundel secara manual memberi Anda kontrol penuh atas pengaturan bundel, tetapi Anda harus terbiasa dengan cara kerja bundel, saat Anda melakukan semua pekerjaan dari awal. Pilih salah satu rangkaian langkah berikut:

Membuat bundel dengan menggunakan templat

Dalam langkah-langkah ini, Anda membuat bundel dengan menggunakan templat bundel default Azure Databricks untuk Python. Langkah-langkah ini memandu Anda untuk membuat bundel yang terdiri dari file untuk dibangun ke dalam file roda Python dan definisi pekerjaan Azure Databricks untuk membangun file roda Python ini. Anda kemudian memvalidasi, menyebarkan, dan membangun file yang disebarkan ke dalam file roda Python dari pekerjaan roda Python dalam ruang kerja Azure Databricks Anda.

Templat bundel default Azure Databricks untuk Python menggunakan setuptools untuk membangun file roda Python. Jika Anda ingin menggunakan Poetry untuk membangun file wheel Python sebagai gantinya, ikuti instruksi di bagian ini untuk mengganti setuptools implementasi dengan implementasi Poetry sebagai gantinya.

Langkah 1: Menyiapkan autentikasi

Dalam langkah ini, Anda menyiapkan autentikasi antara Databricks CLI di komputer pengembangan dan ruang kerja Azure Databricks Anda. Artikel ini mengasumsikan bahwa Anda ingin menggunakan autentikasi pengguna-ke-mesin (U2M) OAuth dan profil konfigurasi Azure Databricks terkait bernama DEFAULT untuk autentikasi.

Catatan

Autentikasi U2M sesuai untuk mencoba langkah-langkah ini secara real time. Untuk alur kerja yang sepenuhnya otomatis, Databricks menyarankan agar Anda menggunakan autentikasi mesin-ke-mesin (M2M) OAuth sebagai gantinya. Lihat instruksi penyiapan autentikasi M2M di Autentikasi.

  1. Gunakan Databricks CLI untuk memulai manajemen token OAuth secara lokal dengan menjalankan perintah berikut untuk setiap ruang kerja target.

    Dalam perintah berikut, ganti <workspace-url> dengan URL per ruang kerja Azure Databricks Anda, misalnya https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI meminta Anda untuk menyimpan informasi yang Anda masukkan sebagai profil konfigurasi Azure Databricks. Tekan Enter untuk menerima nama profil yang disarankan, atau masukkan nama profil baru atau yang sudah ada. Profil dengan nama serupa yang sudah ada akan ditimpa dengan informasi yang Anda masukkan. Anda dapat menggunakan profil untuk mengalihkan konteks autentikasi dengan cepat di beberapa ruang kerja.

    Untuk mendapatkan daftar profil yang ada, di terminal atau prompt perintah terpisah, gunakan Databricks CLI untuk menjalankan perintah databricks auth profiles. Untuk melihat pengaturan profil tertentu yang sudah ada, jalankan perintah databricks auth env --profile <profile-name>.

  3. Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.

  4. Untuk melihat nilai token OAuth profil saat ini dan tanda waktu kedaluwarsa token yang akan datang, jalankan salah satu perintah berikut:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Jika Anda memiliki beberapa profil dengan nilai yang sama --host , Anda mungkin perlu menentukan --host opsi dan -p bersama-sama untuk membantu Databricks CLI menemukan informasi token OAuth yang cocok dengan benar.

Langkah 2: Buat bundel

Bundel berisi artefak yang ingin Anda sebarkan dan pengaturan untuk alur kerja yang ingin Anda jalankan.

  1. Gunakan terminal atau perintah Anda untuk beralih ke direktori pada komputer pengembangan lokal Anda yang akan berisi bundel templat yang dihasilkan.

  2. Gunakan versi Databricks CLI untuk menjalankan bundle init perintah:

    databricks bundle init
    
  3. Untuk Template to use, biarkan nilai default-python default dengan menekan Enter.

  4. Untuk Unique name for this project, biarkan nilai my_projectdefault , atau ketik nilai yang berbeda, lalu tekan Enter. Ini menentukan nama direktori akar untuk bundel ini. Direktori akar ini dibuat dalam direktori kerja Anda saat ini.

  5. Untuk Include a stub (sample) notebook, pilih no dan tekan Enter. Ini menginstruksikan Databricks CLI untuk tidak menambahkan buku catatan sampel ke bundel Anda.

  6. Untuk Include a stub (sample) DLT pipeline, pilih no dan tekan Enter. Ini menginstruksikan Databricks CLI untuk tidak menentukan sampel alur DLT di bundel Anda.

  7. Untuk Include a stub (sample) Python package, biarkan nilai yes default dengan menekan Enter. Ini menginstruksikan Databricks CLI untuk menambahkan sampel file paket roda Python dan instruksi build terkait ke bundel Anda.

Langkah 3: Jelajahi bundel

Untuk melihat file yang dihasilkan templat, beralihlah ke direktori akar bundel yang baru dibuat dan buka direktori ini dengan IDE pilihan Anda, misalnya Visual Studio Code. File yang menarik meliputi yang berikut ini:

  • databricks.yml: File ini menentukan nama programatik paket, termasuk referensi ke definisi pekerjaan wheel Python, dan menentukan pengaturan pada ruang kerja target.
  • resources/<project-name>_job.yml: File ini menentukan pengaturan pekerjaan roda Python.
  • src/<project-name>: Direktori ini mencakup file yang digunakan tugas pembuatan paket Python wheel untuk membangun file Python wheel.

Catatan

Jika Anda ingin menginstal file roda Python pada kluster target yang memiliki Databricks Runtime 12.2 LTS atau di bawah ini, Anda harus menambahkan pemetaan tingkat atas berikut ke databricks.yml file:

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

Pemetaan ini menginstruksikan Databricks CLI untuk melakukan hal berikut:

  • Sebarkan salinan file roda Python di latar belakang. Jalur penyebaran ini biasanya ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • Buat buku catatan di latar belakang yang berisi instruksi untuk menginstal file roda Python sebelumnya yang disebarkan pada kluster target. Jalur buku catatan ini biasanya ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
  • Saat Anda menjalankan pekerjaan yang berisi tugas roda Python, dan tugas tersebut mereferensikan file roda Python sebelumnya, pekerjaan dibuat di latar belakang yang menjalankan buku catatan sebelumnya.

Anda tidak perlu menentukan pemetaan ini untuk kluster target yang memiliki Databricks Runtime 13.1 atau versi yang lebih baru terinstal, karena instalasi wheel Python dari sistem file ruang kerja Azure Databricks akan terpasang secara otomatis pada kluster target tersebut.

Langkah 4: Perbarui bundel proyek untuk menggunakan Puisi

Secara default, templat bundel menentukan pembuatan file roda Python menggunakan setuptools bersama dengan file setup.py dan requirements-dev.txt. Jika Anda ingin menyimpan default ini, lewati ke Langkah 5: Validasi file konfigurasi bundel proyek.

Untuk memperbarui bundel proyek untuk menggunakan Puisi alih-alih setuptools, pastikan mesin pengembangan lokal Anda memenuhi persyaratan berikut:

  • Puisi versi 1.6 atau lebih tinggi. Untuk memeriksa versi Puisi yang diinstal, jalankan perintah poetry -V atau poetry --version. Untuk menginstal atau meningkatkan Puisi, lihat Penginstalan.
  • Python versi 3.10 atau lebih tinggi. Untuk memeriksa versi Python Anda, jalankan perintah python -V atau python --version.
  • Databricks CLI versi 0.209.0 atau lebih tinggi. Ke versi Databricks CLI Anda, jalankan perintah databricks -v atau databricks --version. Lihat Menginstal atau memperbarui Databricks CLI.

Buat perubahan berikut pada bundel proyek:

  1. Dari direktori akar bundel, instruksikan poetry untuk menginisialisasi build wheel Python untuk Poetry, dengan menjalankan perintah berikut:

    poetry init
    
  2. Puisi menampilkan beberapa perintah untuk Anda selesaikan. Untuk build roda Python, jawab perintah ini sebagai berikut untuk mencocokkan pengaturan default terkait dalam bundel proyek:

    1. Untuk Package name, ketik nama folder anak di bawah /src, lalu tekan Enter. Ini juga harus menjadi nilai paket name yang didefinisikan dalam file bundel setup.py .
    2. Untuk Version, ketik 0.0.1 dan tekan Enter. Ini cocok dengan nomor versi yang ditentukan dalam file bundel src/<project-name>/__init__.py .
    3. Untuk Description, ketik wheel file based on <project-name>/src (mengganti <project-name> dengan nama proyek), dan tekan Enter. Ini sesuai dengan nilai description yang ditentukan dalam file template setup.py.
    4. Untuk Author, tekan Enter. Nilai default ini cocok dengan penulis yang ditentukan dalam file templat setup.py .
    5. Untuk License, tekan Enter. Tidak ada lisensi yang ditentukan dalam templat.
    6. Untuk Compatible Python versions, masukkan versi Python yang cocok dengan yang ada di kluster Azure Databricks target Anda (misalnya, ^3.10), dan tekan Enter.
    7. Untuk Would you like to define your main dependencies interactively? Ketik no dan tekan Enter. Anda akan menentukan dependensi Anda nanti.
    8. Untuk Would you like to define your development dependencies interactively? Ketik no dan tekan Enter. Anda akan menentukan dependensi Anda nanti.
    9. Untuk Do you confirm generation? Tekan Enter.
  3. Setelah Anda menyelesaikan petunjuknya, Poetry menambahkan file pyproject.toml ke proyek bundel. Untuk informasi tentang file pyproject.toml, lihat file pyproject.toml.

  4. Dari direktori akar bundel, instruksikan agar poetry membaca pyproject.toml file, mengatasi dependensi dan menginstalnya, membuat poetry.lock file untuk mengunci dependensi, dan akhirnya membuat lingkungan virtual. Untuk melakukannya, jalankan perintah berikut:

    poetry install
    
  5. Tambahkan bagian berikut di akhir pyproject.toml file, ganti <project-name> dengan nama direktori yang berisi src/<project-name>/main.py file (misalnya, my_project):

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    Bagian menentukan titik masuk roda Python untuk pekerjaan roda Python.

  6. Tambahkan pemetaan berikut di tingkat atas file bundel databricks.yml :

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    Pemetaan ini menginstruksikan Databricks CLI untuk menggunakan Puisi untuk membangun file roda Python.

  7. Hapus file setup.py dan requirements-dev.txt dari bundel, karena Poetry tidak membutuhkannya.

Langkah 5: Memvalidasi file konfigurasi bundel proyek

Dalam langkah ini, Anda memeriksa apakah konfigurasi bundel valid.

  1. Dari direktori akar, gunakan Databricks CLI untuk menjalankan bundle validate perintah, sebagai berikut:

    databricks bundle validate
    
  2. Jika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah ini untuk memeriksa apakah konfigurasi bundel Anda masih valid.

Langkah 6: Buat file roda Python dan sebarkan proyek lokal ke ruang kerja jarak jauh

Dalam langkah ini, Anda membuat file roda Python, menyebarkan file roda Python bawaan ke ruang kerja Azure Databricks jarak jauh Anda, dan membuat pekerjaan Azure Databricks di dalam ruang kerja Anda.

  1. Jika Anda menggunakan setuptools, instal wheel paket dan setuptools jika Anda belum melakukannya, dengan menjalankan perintah berikut:

    pip3 install --upgrade wheel setuptools
    
  2. Di terminal Visual Studio Code, gunakan Databricks CLI untuk menjalankan bundle deploy perintah sebagai berikut:

    databricks bundle deploy -t dev
    
  3. Jika Anda ingin memeriksa apakah file wheel Python yang dibuat secara lokal sudah disebarkan:

    1. Di bilah samping ruang kerja Azure Databricks Anda, klik Workspace.
    2. Klik pada folder berikut: Workspace> Users ><your-username>> .bundle> dev<project-name>> artifak> .internal>><random-guid>

    File roda Python harus berada di folder ini.

  4. Jika Anda ingin memeriksa apakah pekerjaan telah dibuat:

    1. Di bilah sisi ruang kerja Azure Databricks Anda, klik Workflows.
    2. Pada tab Pekerjaan , klik [dev <your-username>] <project-name>_job.
    3. Klik tab Tugas.

    Harus ada satu tugas: main_task.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 5-6 untuk memeriksa apakah konfigurasi bundel Anda masih valid lalu menyebarkan ulang proyek.

Langkah 7: Jalankan proyek yang telah disebarkan

Dalam langkah ini, Anda menjalankan pekerjaan Azure Databricks di ruang kerja Anda.

  1. Dari direktori akar, gunakan Databricks CLI untuk menjalankan bundle run perintah, sebagai berikut, mengganti <project-name> dengan nama proyek Anda dari Langkah 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Salin nilai Run URL yang muncul di terminal Anda dan tempelkan nilai ini ke browser web Anda untuk membuka ruang kerja Azure Databricks Anda.

  3. Di ruang kerja Azure Databricks Anda, setelah tugas berhasil diselesaikan dan memperlihatkan bilah judul hijau, klik tugas main_task untuk melihat hasilnya.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 5-7 untuk memeriksa apakah konfigurasi bundel Anda masih valid, menyebarkan ulang proyek, dan menjalankan proyek yang disebarkan ulang.

Anda telah mencapai akhir langkah-langkah untuk membuat bundel dengan menggunakan templat.

Membuat bundel secara manual

Dalam langkah-langkah ini, Anda membuat bundel dari awal secara manual. Langkah-langkah ini memandu Anda untuk membuat bundel yang terdiri dari file yang akan dikemas menjadi file roda Python dan definisi pekerjaan Databricks untuk membangun file roda Python ini. Anda kemudian memvalidasi, menyebarkan, dan membangun file yang disebarkan ke dalam file roda Python dari pekerjaan roda Python dalam ruang kerja Databricks Anda.

Langkah-langkah ini termasuk menambahkan konten ke file YAML. Secara opsional, Anda mungkin ingin menggunakan lingkungan pengembangan terintegrasi (IDE) yang menyediakan saran dan tindakan skema otomatis saat bekerja dengan file YAML. Langkah-langkah berikut menggunakan Visual Studio Code dengan ekstensi YAML yang diinstal dari Visual Studio Code Marketplace.

Langkah-langkah ini mengasumsikan bahwa Anda sudah tahu:

Ikuti instruksi ini untuk membuat bundel sampel yang membangun file roda Python dengan Poetry atau setuptools, menyebarkan file roda Python, lalu menjalankan file roda Python yang disebarkan.

Jika Anda telah membuat file roda Python dan hanya ingin menyebarkan dan menjalankannya, lewati ke depan untuk menentukan pengaturan roda Python dalam file konfigurasi bundel di Langkah 3: Buat file konfigurasi bundel.

Langkah 1: Menyiapkan autentikasi

Dalam langkah ini, Anda menyiapkan autentikasi antara Databricks CLI di komputer pengembangan dan ruang kerja Azure Databricks Anda. Artikel ini mengasumsikan bahwa Anda ingin menggunakan autentikasi pengguna-ke-mesin (U2M) OAuth dan profil konfigurasi Azure Databricks terkait bernama DEFAULT untuk autentikasi.

Catatan

Autentikasi U2M sesuai untuk mencoba langkah-langkah ini secara real time. Untuk alur kerja yang sepenuhnya otomatis, Databricks menyarankan agar Anda menggunakan autentikasi mesin-ke-mesin (M2M) OAuth sebagai gantinya. Lihat instruksi penyiapan autentikasi M2M di Autentikasi.

  1. Gunakan Databricks CLI untuk memulai manajemen token OAuth secara lokal dengan menjalankan perintah berikut untuk setiap ruang kerja target.

    Dalam perintah berikut, ganti <workspace-url> dengan URL per ruang kerja Azure Databricks Anda, misalnya https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI meminta Anda untuk menyimpan informasi yang Anda masukkan sebagai profil konfigurasi Azure Databricks. Tekan Enter untuk menerima nama profil yang disarankan, atau masukkan nama profil baru atau yang sudah ada. Profil yang ada dengan nama yang sama akan digantikan dengan informasi yang Anda masukkan. Anda dapat menggunakan profil untuk mengalihkan konteks autentikasi dengan cepat di beberapa ruang kerja.

    Untuk mendapatkan daftar profil yang ada, di terminal atau prompt perintah terpisah, gunakan Databricks CLI untuk menjalankan perintah databricks auth profiles. Untuk melihat pengaturan profil tertentu yang sudah ada, jalankan perintah databricks auth env --profile <profile-name>.

  3. Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.

  4. Untuk melihat nilai token OAuth profil saat ini dan tanda waktu kedaluwarsa token yang akan datang, jalankan salah satu perintah berikut:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Jika Anda memiliki beberapa profil dengan nilai yang sama --host , Anda mungkin perlu menentukan --host opsi dan -p bersama-sama untuk membantu Databricks CLI menemukan informasi token OAuth yang cocok dengan benar.

Langkah 2: Buat bundel

Bundel berisi artefak yang ingin Anda sebarkan dan pengaturan untuk alur kerja yang ingin Anda jalankan.

  1. Di direktori utama bundel Anda, buat folder dan file berikut tergantung pada apakah Anda menggunakan Poetry atau setuptools untuk membangun file wheel Python.

    Puisi

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Setuptools

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. __init__.py Biarkan file kosong.

  3. Tambahkan kode berikut ke main.py file lalu simpan file:

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. Tambahkan kode berikut ke my_module.py file lalu simpan file:

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. Tambahkan kode berikut ke pyproject.toml file atau setup.py lalu simpan file:

    Pyproject.toml

    [tool.poetry]
    name = "my_package"
    version = "0.0.1"
    description = "<my-package-description>"
    authors = ["my-author-name <my-author-name>@<my-organization>"]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
    
    [tool.poetry.scripts]
    main = "my_package.main:main"
    
    • Ganti my-author-name dengan nama kontak utama organisasi Anda.
    • Ganti my-author-name>@<my-organization dengan alamat kontak email utama organisasi Anda.
    • Ganti <my-package-description> dengan deskripsi tampilan untuk file roda Python Anda.

    Setup.py

    from setuptools import setup, find_packages
    
    import src
    
    setup(
      name = "my_package",
      version = "0.0.1",
      author = "<my-author-name>",
      url = "https://<my-url>",
      author_email = "<my-author-name>@<my-organization>",
      description = "<my-package-description>",
      packages=find_packages(where='./src'),
      package_dir={'': 'src'},
      entry_points={
        "packages": [
          "main=my_package.main:main"
        ]
      },
      install_requires=[
        "setuptools"
      ]
    )
    
    • Ganti https://<my-url> dengan URL organisasi Anda.
    • Ganti <my-author-name> dengan nama kontak utama organisasi Anda.
    • Ganti <my-author-name>@<my-organization> dengan alamat kontak email utama organisasi Anda.
    • Ganti <my-package-description> dengan deskripsi tampilan untuk file roda Python Anda.

Langkah 3: Membuat file konfigurasi bundel

File konfigurasi bundel menjelaskan artefak yang ingin Anda sebarkan dan alur kerja yang ingin Anda jalankan.

  1. Di root bundel Anda, tambahkan file konfigurasi bundel bernama databricks.yml. Tambahkan kode berikut ke file ini:

    Puisi

    Catatan

    Jika Anda telah membuat file wheel Python dan hanya ingin menerapkannya, maka ubah file konfigurasi bundel berikut dengan menghapus pemetaan artifacts. Databricks CLI kemudian akan beranggapan bahwa file wheel Python sudah dibuat dan akan secara otomatis mendistribusikan file yang ditentukan dalam entri array librarieswhl.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Setuptools

    bundle:
      name: my-wheel-bundle
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Ganti <workspace-url> dengan URL per ruang kerja Anda, misalnya https://adb-1234567890123456.7.azuredatabricks.net.

    Pemetaan artifacts diperlukan untuk membangun file roda Python dengan Poetry dan bersifat opsional untuk membangun file roda Python dengan setuptools. Pemetaan artifacts berisi satu atau beberapa definisi artefak dengan pemetaan berikut:

    • Pemetaan type harus ada dan disetel ke whl untuk menyatakan bahwa file wheel Python akan dibuat. Untuk setuptools, whl adalah default jika tidak ada definisi artefak yang ditentukan.
    • Pemetaan path menunjukkan jalur ke pyproject.toml file untuk Puisi atau ke setup.py file untuk setuptools. Jalur ini relatif terhadap databricks.yml file. Untuk setuptools, jalur ini adalah . (direktori yang sama dengan databricks.yml file) secara default.
    • Pemetaan build menunjukkan perintah build kustom yang harus dijalankan untuk membangun berkas wheel Python. Untuk setuptools, perintah ini secara otomatis python3 setup.py bdist wheel.
    • Pemetaan files terdiri dari satu atau beberapa source pemetaan yang menentukan berkas tambahan mana saja untuk disertakan dalam build roda Python. Tidak ada default.

    Catatan

    Jika Anda ingin menginstal file roda Python pada kluster target yang memiliki Databricks Runtime 12.2 LTS atau di bawah ini, Anda harus menambahkan pemetaan tingkat atas berikut ke databricks.yml file:

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    Pemetaan ini menginstruksikan Databricks CLI untuk melakukan hal berikut:

    • Menyebarkan salinan file roda Python di latar belakang. Jalur penyebaran ini biasanya ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.

    • Membuat buku catatan di latar belakang yang berisi instruksi untuk menginstal file roda Python sebelumnya yang disebarkan pada kluster target. Jalur buku catatan ini biasanya ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.

    • Saat Anda menjalankan pekerjaan yang berisi tugas Python wheel, dan tugas tersebut mereferensikan file Python wheel sebelumnya, pekerjaan dibuat di latar belakang untuk menjalankan notebook sebelumnya.

    Anda tidak perlu menentukan pemetaan ini untuk kluster target yang memiliki Databricks Runtime 13.1 atau yang lebih baru terpasang, karena penginstalan Python wheel dari sistem file ruang kerja Azure Databricks akan terpasang secara otomatis pada kluster target ini.

  2. Jika Anda menggunakan Puisi, lakukan hal berikut:

    • Instal Puisi, versi 1.6 atau lebih tinggi, jika belum diinstal. Untuk memeriksa versi Puisi yang diinstal, jalankan perintah poetry -V atau poetry --version.
    • Pastikan Anda memiliki Python versi 3.10 atau yang lebih baru yang terinstal. Untuk memeriksa versi Python Anda, jalankan perintah python -V atau python --version.
    • Pastikan Anda memiliki Databricks CLI versi 0.209.0 atau lebih tinggi. Ke versi Databricks CLI Anda, jalankan perintah databricks -v atau databricks --version. Lihat Menginstal atau memperbarui Databricks CLI.
  3. Jika Anda menggunakan setuptools, instal paket wheel dan setuptools jika belum diinstal, dengan menjalankan perintah berikut:

    pip3 install --upgrade wheel setuptools
    
  4. Jika Anda ingin menyimpan bundel ini dengan penyedia Git, tambahkan .gitignore file di akar proyek, dan tambahkan entri berikut ke file ini:

    Puisi

    .databricks
    dist
    

    Setuptools

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

Langkah 4: Memvalidasi file konfigurasi bundel proyek

Dalam langkah ini, Anda memeriksa apakah konfigurasi bundel valid.

  1. Beralih ke direktori akar, validasikan file konfigurasi bundel:

    databricks bundle validate
    
  2. Jika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah ini untuk memeriksa apakah konfigurasi bundel Anda masih valid.

Langkah 5: Buat file roda Python dan sebarkan proyek lokal ke ruang kerja jarak jauh

Buat file roda Python secara lokal, sebarkan file roda Python bawaan ke ruang kerja Anda, sebarkan buku catatan ke ruang kerja Anda, dan buat pekerjaan di ruang kerja Anda:

databricks bundle deploy -t dev

Langkah 6: Jalankan proyek yang telah diterapkan

  1. Jalankan pekerjaan yang disebarkan, yang menggunakan notebook yang disebarkan untuk memanggil file roda Python yang disebarkan:

    databricks bundle run -t dev wheel-job
    
  2. Dalam output, salin Run URL dan tempelkan ke bilah alamat browser web Anda.

  3. Di halaman Output eksekusi pekerjaan, hasil berikut muncul:

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 3-5 untuk memeriksa apakah konfigurasi bundel Anda masih valid, menyebarkan ulang proyek, dan menjalankan proyek yang disebarkan ulang.

Membangun dan menginstal file roda Python untuk pekerjaan

Untuk membuat file wheel Python dengan Poetry atau setuptools, lalu menggunakan file wheel Python tersebut dalam pekerjaan, Anda harus menambahkan satu atau dua pemetaan ke databricks.yml file Anda.

Jika Anda menggunakan Puisi, Anda harus menyertakan pemetaan berikut artifacts dalam databricks.yml file. Pemetaan ini menjalankan poetry build perintah dan menggunakan pyproject.toml file yang berada di direktori yang sama dengan databricks.yml file:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Catatan

Pemetaan artifacts bersifat opsional untuk setuptools. Secara default, untuk setuptools Databricks CLI menjalankan perintah python3 setup.py bdist_wheel dan menggunakan setup.py file yang berada di direktori yang sama dengan databricks.yml file. Databricks CLI mengasumsikan bahwa Anda telah menjalankan perintah seperti pip3 install --upgrade wheel setuptools untuk menginstal wheel paket dan setuptools jika belum diinstal.

Selain itu, pemetaan tugas libraries pekerjaan harus berisi whl nilai yang menentukan jalur ke file roda Python bawaan relatif terhadap file konfigurasi di mana ia dideklarasikan. Contoh berikut menunjukkan ini dalam tugas notebook (elips menunjukkan konten yang dihilangkan untuk singkatnya):

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

Membangun dan menginstal file roda Python untuk alur

Untuk membuat file wheel Python dengan Poetry atau setuptools lalu mereferensikan file wheel Python tersebut dalam pipeline DLT, Anda harus menambahkan pemetaan ke file databricks.yml jika Anda menggunakan Poetry, dan Anda harus menambahkan perintah %pip install ke notebook pipeline Anda, sebagai berikut.

Jika Anda menggunakan Puisi, Anda harus menyertakan pemetaan berikut artifacts dalam databricks.yml file. Pemetaan ini menjalankan poetry build perintah dan menggunakan pyproject.toml file yang berada di direktori yang sama dengan databricks.yml file:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Catatan

Pemetaan artifacts bersifat opsional untuk setuptools. Secara default, untuk setuptools Databricks CLI menjalankan perintah python3 setup.py bdist_wheel dan menggunakan setup.py file yang berada di direktori yang sama dengan databricks.yml file. Databricks CLI mengasumsikan bahwa Anda telah menjalankan perintah seperti pip3 install --upgrade wheel setuptools untuk menginstal wheel paket dan setuptools jika belum diinstal.

Selain itu, notebook alur terkait harus menyertakan %pip install perintah untuk menginstal file roda Python yang dibuat. Lihat Pustaka Python.