Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini menjelaskan cara membangun, menyebarkan, dan menjalankan file roda Python menggunakan Bundel Aset Databricks. Lihat Apa itu Bundel Aset Databricks?.
Untuk contoh konfigurasi yang membangun JAR dan mengunggahnya ke Katalog Unity, lihat Bundel yang mengunggah file JAR ke Katalog Unity.
Requirements
- Databricks CLI versi 0.218.0 atau lebih tinggi diinstal, dan autentikasi dikonfigurasi. Untuk memeriksa versi Databricks CLI yang diinstal, jalankan perintah
databricks -v. Untuk menginstal Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI. Untuk mengonfigurasi autentikasi, lihat Mengonfigurasi akses ke ruang kerja Anda. - uv diperlukan untuk menjalankan pengujian dan untuk menginstal dependensi untuk proyek ini dari IDE.
- Ruang kerja jarak jauh harus memiliki file ruang kerja yang diaktifkan. Lihat Apa itu file ruang kerja?.
- Katalog yang sudah ada. Untuk membuat katalog, lihat Membuat katalog.
Membuat bundel menggunakan templat
Buat bundel menggunakan templat bundel default Aset Databricks untuk Python. Bundel ini terdiri dari file untuk dibuat menjadi file roda Python dan definisi pekerjaan Azure Databricks untuk membangun file roda Python ini. Anda kemudian memvalidasi, menyebarkan, dan mengemas file yang disebarkan menjadi file roda Python dari tugas roda Python dalam ruang kerja Azure Databricks Anda.
Jika Anda ingin membuat bundel dari awal, lihat Membuat bundel secara manual.
Langkah 1: Buat bundel
Bundel berisi aset 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 initperintah:databricks bundle initUntuk
Template to use, biarkan nilaidefault-pythondefault dengan menekanEnter.Untuk
Unique name for this project, biarkan nilaimy_projectdefault , 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 job that runs a notebook, pilihnodan tekanEnter. Ini menginstruksikan Databricks CLI untuk tidak menambahkan buku catatan sampel ke bundel Anda.Untuk
Include an ETL pipeline, pilihnodan tekanEnter. Ini menginstruksikan Databricks CLI untuk tidak menentukan alur sampel dalam bundel Anda.Untuk
Include a stub (sample) Python package, biarkan nilaiyesdefault dengan menekanEnter. Ini menginstruksikan Databricks CLI untuk menambahkan sampel file paket roda Python dan instruksi build terkait ke bundel Anda.Untuk
Use serverless, pilihyesdan tekanEnter. Ini menginstruksikan Databricks CLI untuk mengonfigurasi bundel Anda agar berjalan pada komputasi tanpa server.Untuk
Default catalog for any tables created by this project [hive_metastore], masukkan nama katalog Unity Catalog yang sudah ada.Untuk
Use a personal schema for each user working on this project., pilihyes.
Langkah 2: Jelajahi bundel
Untuk melihat file yang dihasilkan templat, beralihlah ke direktori akar bundel yang baru dibuat dan buka direktori ini dengan IDE pilihan Anda. File yang menarik meliputi yang berikut ini:
-
databricks.yml: File ini menentukan nama bundel, mencakup referensi ke file bundel, menentukanwhlpengaturan build, menentukan variabel katalog dan skema, dan menentukan pengaturan untuk ruang kerja target. -
resources/sample_job.job.yml: File ini menentukan pengaturan pekerjaan roda Python. Untuk informasi tentang pengaturan pekerjaan, lihat pekerjaan. -
src/: Folder ini mencakup file yang digunakan pekerjaan roda Python untuk membangun file roda Python. -
tests/: Folder ini berisi pengujian unit sampel. -
README.md: File ini berisi informasi tambahan tentang memulai dan menggunakan templat bundel ini.
Note
Jika Anda ingin menginstal file roda Python pada kluster dengan Databricks Runtime 12.2 LTS atau di bawahnya, 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
Langkah 3: Memvalidasi konfigurasi bundel
Sekarang periksa apakah konfigurasi bundel valid.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle validateperintah:databricks bundle validateJika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.
Langkah 4: Sebarkan bundel ke ruang kerja jarak jauh
Selanjutnya, sebarkan bundel ke ruang kerja Azure Databricks jarak jauh Anda. Ini membangun file roda Python. Verifikasi bahwa pekerjaan Azure Databricks dibuat di dalam ruang kerja Anda.
Dari akar bundel, gunakan Databricks CLI untuk menjalankan perintah
bundle deploy.databricks bundle deploy --target devKonfirmasikan bahwa file roda Python yang dibuat secara lokal telah disebarkan:
- Di bilah samping ruang kerja Azure Databricks Anda, klik Ruang Kerja.
- Klik folder berikut: Ruang Kerja > Pengguna >
<your-username>> .bundle > dev<project-name>artifacts > .internal >>><whl-file-name>.whl.
File roda Python harus berada di folder ini.
Periksa apakah tugas telah dibuat:
- Di bilah sisi ruang kerja Azure Databricks Anda, klik
Tugas & Pipeline . - Secara opsional, pilih filter Pekerjaan dan Dimiliki oleh saya .
- Klik [dev
<your-username>]sample_job. - Klik tab Tugas . Harus ada satu python_wheel_task.
- Di bilah sisi ruang kerja Azure Databricks Anda, klik
Jika Anda membuat perubahan pada bundel setelah langkah ini, ulangi langkah 3-4 untuk memeriksa apakah konfigurasi bundel Anda masih valid lalu sebarkan ulang proyek.
Langkah 5: Jalankan proyek yang disebarkan
Sekarang picu menjalankan pekerjaan Azure Databricks di ruang kerja Anda.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle runperintah:databricks bundle run --target dev sample_jobSalin nilai
Run URLyang 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 pekerjaan untuk melihat hasilnya.
Membangun paket whl menggunakan Poetry atau setuptools
Saat Anda menggunakan databricks bundle init dengan templat default-python, bundel dibuat yang menunjukkan cara mengonfigurasi bundel yang membangun roda Python menggunakan uv dan pyproject.toml. Namun, Anda mungkin ingin menggunakan Puisi atau setuptools sebagai gantinya untuk membangun roda.
Menginstal Poetry atau setuptools
Instal Poetry atau
setuptools:Poetry
-
Instal Puisi, versi 1.6 atau lebih tinggi, jika belum diinstal. Untuk memeriksa versi Puisi yang diinstal, jalankan perintah
poetry -Vataupoetry --version. - Pastikan Anda memiliki Python versi 3.10 atau yang lebih baru yang terinstal. Untuk memeriksa versi Python Anda, jalankan perintah
python -Vataupython --version.
Setuptools
Instal paket
wheeldansetuptoolsjika mereka belum diinstal, dengan menjalankan perintah berikut:pip3 install --upgrade wheel setuptools-
Instal Puisi, versi 1.6 atau lebih tinggi, jika belum diinstal. Untuk memeriksa versi Puisi yang diinstal, jalankan perintah
Jika Anda ingin menyimpan bundel ini dengan penyedia Git, tambahkan
.gitignorefile di akar proyek, dan tambahkan entri berikut ke file ini:Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
Menambahkan file build
Di direktori root bundel Anda, buat folder dan file berikut, tergantung pada apakah Anda menggunakan Poetry atau
setuptoolsuntuk membangun file wheel Python.Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pyTambahkan kode berikut ke
pyproject.tomlfile atausetup.py: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-namedengan nama kontak utama organisasi Anda. - Ganti
my-author-name>@<my-organizationdengan 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
Menambahkan konfigurasi bundel artefak
Tambahkan konfigurasi pemetaan
artifactskedatabricks.ymlAnda untuk membangun artefakwhl.Poetry
Konfigurasi ini menjalankan
poetry buildperintah dan menunjukkan jalur kepyproject.tomlfile berada dalam direktori yang sama dengandatabricks.ymlfile.Note
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 secara otomatis akan menyebarkan file yang ditentukan dalam entri arraylibrarieswhl.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
Konfigurasi ini menjalankan
setuptoolsperintah dan menunjukkan jalur kesetup.pyfile berada dalam direktori yang sama dengandatabricks.ymlfile.bundle: name: my-wheel-bundle artifacts: default: type: whl build: python3 setup.py bdist wheel 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>