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
- Databricks CLI versi 0.218.0 atau lebih tinggi. Untuk memeriksa versi Databricks CLI yang diinstal, jalankan perintah
databricks -v
. Untuk menginstal Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI. - Ruang kerja jarak jauh harus memiliki file ruang kerja yang diaktifkan. Lihat Apa itu file ruang kerja?.
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.
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, misalnyahttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
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 perintahdatabricks auth env --profile <profile-name>
.Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.
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.
Gunakan terminal atau perintah Anda untuk beralih ke direktori pada komputer pengembangan lokal Anda yang akan berisi bundel templat yang dihasilkan.
Gunakan versi Databricks CLI untuk menjalankan
bundle init
perintah:databricks bundle init
Untuk
Template to use
, biarkan nilaidefault-python
default dengan menekanEnter
.Untuk
Unique name for this project
, biarkan nilaimy_project
default , atau ketik nilai yang berbeda, lalu tekanEnter
. Ini menentukan nama direktori akar untuk bundel ini. Direktori akar ini dibuat dalam direktori kerja Anda saat ini.Untuk
Include a stub (sample) notebook
, pilihno
dan tekanEnter
. Ini menginstruksikan Databricks CLI untuk tidak menambahkan buku catatan sampel ke bundel Anda.Untuk
Include a stub (sample) DLT pipeline
, pilihno
dan tekanEnter
. Ini menginstruksikan Databricks CLI untuk tidak menentukan sampel alur DLT di bundel Anda.Untuk
Include a stub (sample) Python package
, biarkan nilaiyes
default dengan menekanEnter
. 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
ataupoetry --version
. Untuk menginstal atau meningkatkan Puisi, lihat Penginstalan. - Python versi 3.10 atau lebih tinggi. Untuk memeriksa versi Python Anda, jalankan perintah
python -V
ataupython --version
. - Databricks CLI versi 0.209.0 atau lebih tinggi. Ke versi Databricks CLI Anda, jalankan perintah
databricks -v
ataudatabricks --version
. Lihat Menginstal atau memperbarui Databricks CLI.
Buat perubahan berikut pada bundel proyek:
Dari direktori akar bundel, instruksikan
poetry
untuk menginisialisasi build wheel Python untuk Poetry, dengan menjalankan perintah berikut:poetry init
Puisi menampilkan beberapa perintah untuk Anda selesaikan. Untuk build roda Python, jawab perintah ini sebagai berikut untuk mencocokkan pengaturan default terkait dalam bundel proyek:
- Untuk
Package name
, ketik nama folder anak di bawah/src
, lalu tekanEnter
. Ini juga harus menjadi nilai paketname
yang didefinisikan dalam file bundelsetup.py
. - Untuk
Version
, ketik0.0.1
dan tekanEnter
. Ini cocok dengan nomor versi yang ditentukan dalam file bundelsrc/<project-name>/__init__.py
. - Untuk
Description
, ketikwheel file based on <project-name>/src
(mengganti<project-name>
dengan nama proyek), dan tekanEnter
. Ini sesuai dengan nilaidescription
yang ditentukan dalam file templatesetup.py
. - Untuk
Author
, tekanEnter
. Nilai default ini cocok dengan penulis yang ditentukan dalam file templatsetup.py
. - Untuk
License
, tekanEnter
. Tidak ada lisensi yang ditentukan dalam templat. - Untuk
Compatible Python versions
, masukkan versi Python yang cocok dengan yang ada di kluster Azure Databricks target Anda (misalnya,^3.10
), dan tekanEnter
. - Untuk
Would you like to define your main dependencies interactively?
Ketikno
dan tekanEnter
. Anda akan menentukan dependensi Anda nanti. - Untuk
Would you like to define your development dependencies interactively?
Ketikno
dan tekanEnter
. Anda akan menentukan dependensi Anda nanti. - Untuk
Do you confirm generation?
TekanEnter
.
- Untuk
Setelah Anda menyelesaikan petunjuknya, Poetry menambahkan file
pyproject.toml
ke proyek bundel. Untuk informasi tentang filepyproject.toml
, lihat file pyproject.toml.Dari direktori akar bundel, instruksikan agar
poetry
membacapyproject.toml
file, mengatasi dependensi dan menginstalnya, membuatpoetry.lock
file untuk mengunci dependensi, dan akhirnya membuat lingkungan virtual. Untuk melakukannya, jalankan perintah berikut:poetry install
Tambahkan bagian berikut di akhir
pyproject.toml
file, ganti<project-name>
dengan nama direktori yang berisisrc/<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.
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.
Hapus file
setup.py
danrequirements-dev.txt
dari bundel, karena Poetry tidak membutuhkannya.
Langkah 5: Memvalidasi file konfigurasi bundel proyek
Dalam langkah ini, Anda memeriksa apakah konfigurasi bundel valid.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle validate
perintah, sebagai berikut:databricks bundle validate
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.
Jika Anda menggunakan
setuptools
, instalwheel
paket dansetuptools
jika Anda belum melakukannya, dengan menjalankan perintah berikut:pip3 install --upgrade wheel setuptools
Di terminal Visual Studio Code, gunakan Databricks CLI untuk menjalankan
bundle deploy
perintah sebagai berikut:databricks bundle deploy -t dev
Jika Anda ingin memeriksa apakah file wheel Python yang dibuat secara lokal sudah disebarkan:
- Di bilah samping ruang kerja Azure Databricks Anda, klik Workspace.
- Klik pada folder berikut: Workspace> Users >
<your-username>
> .bundle> dev<project-name>
> artifak> .internal>><random-guid>
File roda Python harus berada di folder ini.
Jika Anda ingin memeriksa apakah pekerjaan telah dibuat:
- Di bilah sisi ruang kerja Azure Databricks Anda, klik Workflows.
- Pada tab Pekerjaan , klik [dev
<your-username>
]<project-name>
_job. - 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.
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
Salin nilai
Run URL
yang muncul di terminal Anda dan tempelkan nilai ini ke browser web Anda untuk membuka ruang kerja Azure Databricks Anda.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:
- Cara membuat, membangun, dan menggunakan file wheel Python dengan Poetry atau
setuptools
. Untuk Puisi, lihat Penggunaan dasar. Untuksetuptools
, lihat Panduan Pengguna Pengemasan Python. - Cara menggunakan file wheel Python sebagai bagian dari tugas Azure Databricks. Lihat Menggunakan file wheel Python dalam sebuah pekerjaan di Azure Databricks.
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.
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, misalnyahttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
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 perintahdatabricks auth env --profile <profile-name>
.Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.
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.
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
__init__.py
Biarkan file kosong.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()
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
Tambahkan kode berikut ke
pyproject.toml
file atausetup.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.
- Ganti
Langkah 3: Membuat file konfigurasi bundel
File konfigurasi bundel menjelaskan artefak yang ingin Anda sebarkan dan alur kerja yang ingin Anda jalankan.
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 arraylibraries
whl
.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, misalnyahttps://adb-1234567890123456.7.azuredatabricks.net
.Pemetaan
artifacts
diperlukan untuk membangun file roda Python dengan Poetry dan bersifat opsional untuk membangun file roda Python dengansetuptools
. Pemetaanartifacts
berisi satu atau beberapa definisi artefak dengan pemetaan berikut:- Pemetaan
type
harus ada dan disetel kewhl
untuk menyatakan bahwa file wheel Python akan dibuat. Untuksetuptools
,whl
adalah default jika tidak ada definisi artefak yang ditentukan. - Pemetaan
path
menunjukkan jalur kepyproject.toml
file untuk Puisi atau kesetup.py
file untuksetuptools
. Jalur ini relatif terhadapdatabricks.yml
file. Untuksetuptools
, jalur ini adalah.
(direktori yang sama dengandatabricks.yml
file) secara default. - Pemetaan
build
menunjukkan perintah build kustom yang harus dijalankan untuk membangun berkas wheel Python. Untuksetuptools
, perintah ini secara otomatispython3 setup.py bdist wheel
. - Pemetaan
files
terdiri dari satu atau beberapasource
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.
- Pemetaan
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
ataupoetry --version
. - Pastikan Anda memiliki Python versi 3.10 atau yang lebih baru yang terinstal. Untuk memeriksa versi Python Anda, jalankan perintah
python -V
ataupython --version
. - Pastikan Anda memiliki Databricks CLI versi 0.209.0 atau lebih tinggi. Ke versi Databricks CLI Anda, jalankan perintah
databricks -v
ataudatabricks --version
. Lihat Menginstal atau memperbarui Databricks CLI.
-
Instal Puisi, versi 1.6 atau lebih tinggi, jika belum diinstal. Untuk memeriksa versi Puisi yang diinstal, jalankan perintah
Jika Anda menggunakan
setuptools
, instal paketwheel
dansetuptools
jika belum diinstal, dengan menjalankan perintah berikut:pip3 install --upgrade wheel setuptools
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.
Beralih ke direktori akar, validasikan file konfigurasi bundel:
databricks bundle validate
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
Jalankan pekerjaan yang disebarkan, yang menggunakan notebook yang disebarkan untuk memanggil file roda Python yang disebarkan:
databricks bundle run -t dev wheel-job
Dalam output, salin
Run URL
dan tempelkan ke bilah alamat browser web Anda.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.