Databricks SDK untuk Python
Dalam artikel ini, Anda mempelajari cara mengotomatiskan operasi di akun Azure Databricks, ruang kerja, dan sumber daya terkait dengan Databricks SDK untuk Python. Artikel ini melengkapi dokumentasi Databricks SDK untuk Python tentang Membaca Dokumen dan contoh kode dalam databricks SDK untuk repositori Python di GitHub.
Catatan
Fitur ini ada di Beta dan tidak apa-apa untuk digunakan dalam produksi.
Selama periode Beta, Databricks merekomendasikan agar Anda menyematkan dependensi pada versi minor tertentu dari Databricks SDK untuk Python yang bergantung pada kode Anda. Misalnya, Anda dapat menyematkan dependensi dalam file seperti requirements.txt
untuk venv
, atau pyproject.toml
dan poetry.lock
untuk Puisi. Untuk informasi selengkapnya tentang menyematkan dependensi, lihat Lingkungan virtual dan Paket untuk venv
, atau Menginstal dependensi untuk Puisi.
Sebelum Anda mulai
Anda dapat menggunakan Databricks SDK untuk Python dari dalam notebook Azure Databricks atau dari komputer pengembangan lokal Anda.
- Untuk menggunakan Databricks SDK untuk Python dari dalam buku catatan Azure Databricks, lewati ke depan untuk Menggunakan Databricks SDK untuk Python dari buku catatan Azure Databricks.
- Untuk menggunakan Databricks SDK for Python dari komputer pengembangan lokal Anda, selesaikan langkah-langkah di bagian ini.
Sebelum Anda mulai menggunakan Databricks SDK untuk Python, komputer pengembangan Anda harus memiliki:
- Autentikasi Azure Databricks dikonfigurasi.
- Python 3.8 atau yang lebih tinggi terinstal. Untuk mengotomatiskan sumber daya komputasi Azure Databricks, Databricks menyarankan agar Anda memiliki versi utama dan minor Python yang terinstal yang cocok dengan yang diinstal pada sumber daya komputasi Azure Databricks target Anda. Contoh artikel ini mengandalkan pengotomatisan kluster dengan Databricks Runtime 13.3 LTS, yang menginstal Python 3.10. Untuk versi yang benar, lihat Versi dan kompatibilitas catatan rilis Databricks Runtime untuk versi Databricks Runtime kluster Anda.
- Databricks merekomendasikan agar Anda membuat dan mengaktifkan lingkungan virtual Python untuk setiap proyek kode Python yang Anda gunakan dengan Databricks SDK untuk Python. Lingkungan virtual Python membantu memastikan bahwa proyek kode Anda menggunakan versi paket Python dan Python yang kompatibel (dalam hal ini, paket Databricks SDK for Python). Artikel ini menjelaskan cara menggunakan venv atau Potetry untuk lingkungan virtual Python.
Membuat lingkungan virtual Python dengan venv
Dari terminal Anda yang diatur ke direktori akar proyek kode Python Anda, jalankan perintah berikut. Perintah ini menginstruksikan
venv
untuk menggunakan Python 3.10 untuk lingkungan virtual, lalu membuat file pendukung lingkungan virtual dalam direktori tersembunyi bernama.venv
dalam direktori akar proyek kode Python Anda.# Linux and macOS python3.10 -m venv ./.venv # Windows python3.10 -m venv .\.venv
Gunakan
venv
untuk mengaktifkan lingkungan virtual. Lihat dokumentasi venv untuk perintah yang benar untuk digunakan, berdasarkan sistem operasi dan jenis terminal Anda. Misalnya, pada macOS yang menjalankanzsh
:source ./.venv/bin/activate
Anda akan tahu bahwa lingkungan virtual Anda diaktifkan saat nama lingkungan virtual (misalnya,
.venv
) ditampilkan dalam tanda kurung tepat sebelum permintaan terminal Anda.Untuk menonaktifkan lingkungan virtual kapan saja, jalankan perintah
deactivate
.Anda akan tahu bahwa lingkungan virtual Anda dinonaktifkan ketika nama lingkungan virtual tidak lagi ditampilkan dalam tanda kurung tepat sebelum permintaan terminal Anda.
Lewati ke Mulai menggunakan Databricks SDK untuk Python.
Membuat lingkungan virtual dengan Puisi
Pasang Puisi, jika Anda belum melakukannya.
Dari terminal Anda yang diatur ke direktori akar proyek kode Python Anda, jalankan perintah berikut untuk menginstruksikan
poetry
untuk menginisialisasi proyek kode Python Anda untuk Puisi.poetry init
Puisi menampilkan beberapa perintah untuk Anda selesaikan. Tidak satu pun dari perintah ini khusus untuk Databricks SDK untuk Python. Untuk informasi tentang perintah ini, lihat init.
Setelah Anda menyelesaikan perintah, Puisi menambahkan
pyproject.toml
file ke proyek Python Anda. Untuk informasi tentang file,pyproject.toml
lihat File pyproject.toml.Dengan terminal Anda masih diatur ke direktori akar proyek kode Python Anda, jalankan perintah berikut. Perintah ini menginstruksikan
poetry
untuk membacapyproject.toml
file, menginstal dan menyelesaikan dependensi, membuatpoetry.lock
file untuk mengunci dependensi, dan akhirnya membuat lingkungan virtual.poetry install
Dari terminal Anda yang diatur ke direktori akar proyek kode Python Anda, jalankan perintah berikut untuk menginstruksikan
poetry
untuk mengaktifkan lingkungan virtual dan memasukkan shell.poetry shell
Anda akan tahu bahwa lingkungan virtual Anda diaktifkan dan shell dimasukkan saat nama lingkungan virtual ditampilkan dalam tanda kurung tepat sebelum permintaan terminal Anda.
Untuk menonaktifkan lingkungan virtual dan keluar dari shell kapan saja, jalankan perintah
exit
.Anda akan tahu bahwa Anda telah keluar dari shell ketika nama lingkungan virtual tidak lagi ditampilkan dalam tanda kurung tepat sebelum permintaan terminal Anda.
Untuk informasi selengkapnya tentang membuat dan mengelola lingkungan virtual Puisi, lihat Mengelola lingkungan.
Mulai menggunakan Databricks SDK untuk Python
Bagian ini menjelaskan cara memulai Databricks SDK untuk Python dari komputer pengembangan lokal Anda. Untuk menggunakan Databricks SDK untuk Python dari dalam buku catatan Azure Databricks, lewati ke depan untuk Menggunakan Databricks SDK untuk Python dari buku catatan Azure Databricks.
Pada komputer pengembangan Anda dengan autentikasi Azure Databricks yang dikonfigurasi, Python sudah diinstal, dan lingkungan virtual Python Anda sudah diaktifkan, instal paket databricks-sdk (dan dependensinya) dari Indeks Paket Python (PyPI), sebagai berikut:
Venv
Gunakan
pip
untuk menginstaldatabricks-sdk
paket. (Pada beberapa sistem, Anda mungkin perlu menggantipip3
denganpip
, di sini dan di seluruh.)pip3 install databricks-sdk
Puisi
poetry add databricks-sdk
Untuk menginstal versi
databricks-sdk
paket tertentu sementara Databricks SDK untuk Python berada di Beta, lihat riwayat Rilis paket. Misalnya, untuk menginstal versi0.1.6
:Venv
pip3 install databricks-sdk==0.1.6
Puisi
poetry add databricks-sdk==0.1.6
Tip
Untuk meningkatkan penginstalan paket Databricks SDK for Python yang ada ke versi terbaru, jalankan perintah berikut:
Venv
pip3 install --upgrade databricks-sdk
Puisi
poetry add databricks-sdk@latest
Untuk menampilkan Databricks SDK untuk paket Python saat ini
Version
dan detail lainnya, jalankan perintah berikut:Venv
pip3 show databricks-sdk
Puisi
poetry show databricks-sdk
Di lingkungan virtual Python Anda, buat file kode Python yang mengimpor Databricks SDK untuk Python. Contoh berikut, dalam file
main.py
bernama dengan konten berikut, hanya mencantumkan semua kluster di ruang kerja Azure Databricks Anda:from databricks.sdk import WorkspaceClient w = WorkspaceClient() for c in w.clusters.list(): print(c.cluster_name)
Jalankan file kode Python Anda, dengan asumsi file bernama
main.py
, dengan menjalankanpython
perintah :Venv
python3.10 main.py
Puisi
Jika Anda berada di shell lingkungan virtual:
python3.10 main.py
Jika Anda tidak berada di shell lingkungan virtual:
poetry run python3.10 main.py
Catatan
Dengan tidak mengatur argumen apa pun dalam panggilan sebelumnya ke
w = WorkspaceClient()
, Databricks SDK untuk Python menggunakan proses defaultnya untuk mencoba melakukan autentikasi Azure Databricks. Untuk mengambil alih perilaku default ini, lihat bagian autentikasi berikut.
Mengautentikasi SDK Databricks untuk Python dengan akun atau ruang kerja Azure Databricks Anda
Bagian ini menjelaskan cara mengautentikasi Databricks SDK untuk Python dari komputer pengembangan lokal Anda ke akun atau ruang kerja Azure Databricks Anda. Untuk mengautentikasi Databricks SDK for Python dari dalam buku catatan Azure Databricks, lewati ke depan untuk Menggunakan Databricks SDK untuk Python dari buku catatan Azure Databricks.
Databricks SDK for Python menerapkan standar autentikasi terpadu klien Databricks, pendekatan arsitektur dan terprogram yang terkonsolidasi dan konsisten untuk autentikasi. Pendekatan ini membantu menyiapkan dan mengotomatiskan autentikasi dengan Azure Databricks lebih terpusat dan dapat diprediksi. Ini memungkinkan Anda untuk mengonfigurasi autentikasi Databricks sekali dan kemudian menggunakan konfigurasi tersebut di beberapa alat Databricks dan SDK tanpa perubahan konfigurasi autentikasi lebih lanjut. Untuk informasi selengkapnya, termasuk contoh kode yang lebih lengkap di Python, lihat Autentikasi terpadu klien Databricks.
Catatan
Databricks SDK untuk Python belum menerapkan autentikasi identitas terkelola Azure.
Beberapa pola pengkodian yang tersedia untuk menginisialisasi autentikasi Databricks dengan Databricks SDK untuk Python meliputi:
Gunakan autentikasi default Databricks dengan melakukan salah satu hal berikut:
- Buat atau identifikasi profil konfigurasi Databricks kustom dengan bidang yang diperlukan untuk jenis autentikasi Databricks target. Kemudian atur
DATABRICKS_CONFIG_PROFILE
variabel lingkungan ke nama profil konfigurasi kustom. - Atur variabel lingkungan yang diperlukan untuk jenis autentikasi Databricks target.
Kemudian buat contoh objek dengan autentikasi
WorkspaceClient
default Databricks sebagai berikut:from databricks.sdk import WorkspaceClient w = WorkspaceClient() # ...
- Buat atau identifikasi profil konfigurasi Databricks kustom dengan bidang yang diperlukan untuk jenis autentikasi Databricks target. Kemudian atur
Hard-coding bidang yang diperlukan didukung tetapi tidak disarankan, karena berisiko mengekspos informasi sensitif dalam kode Anda, seperti token akses pribadi Azure Databricks. Contoh host Azure Databricks kode keras berikut dan nilai token akses untuk autentikasi token Databricks:
from databricks.sdk import WorkspaceClient w = WorkspaceClient( host = 'https://...', token = '...' ) # ...
Lihat juga Autentikasi dalam dokumentasi Databricks SDK for Python.
Menggunakan Databricks SDK untuk Python dari buku catatan Azure Databricks
Anda dapat memanggil Databricks SDK untuk fungsionalitas Python dari notebook Azure Databricks yang memiliki kluster Azure Databricks terlampir dengan Databricks SDK untuk Python yang diinstal. Databricks SDK untuk Python sudah diinstal pada semua kluster Azure Databricks yang menggunakan Databricks Runtime 13.3 LTS atau lebih tinggi. Untuk kluster Azure Databricks yang menggunakan Databricks Runtime 12.2 LTS dan di bawahnya, Anda harus menginstal Databricks SDK untuk Python terlebih dahulu. Lihat Langkah 1: Menginstal atau meningkatkan Databricks SDK untuk Python.
Untuk melihat nomor versi Databricks SDK untuk Python yang diinstal secara default untuk versi tertentu dari Databricks Runtime, lihat bagian "Pustaka Python terinstal" dari catatan rilis Databricks Runtime untuk versi Runtime Databricks tersebut.
Databricks SDK untuk Python 0.6.0 ke atas menggunakan autentikasi notebook Azure Databricks default. Autentikasi notebook Azure Databricks default bergantung pada token akses pribadi Azure Databricks sementara yang dihasilkan Azure Databricks secara otomatis di latar belakang untuk penggunaannya sendiri. Azure Databricks menghapus token sementara ini setelah buku catatan berhenti berjalan.
Penting
Autentikasi notebook Azure Databricks default hanya berfungsi pada simpul driver kluster dan bukan pada simpul pekerja atau eksekutor kluster mana pun.
Databricks Runtime 13.3 LTS dan yang lebih baru mendukung autentikasi notebook Azure Databricks default dengan Databricks SDK untuk Python 0.1.7 atau yang lebih baru terinstal. Databricks Runtime 10.4 LTS dan yang lebih baru mendukung autentikasi notebook Azure Databricks default dengan Databricks SDK untuk Python 0.1.10 atau yang lebih baru terinstal. Namun, Databricks merekomendasikan agar Anda menginstal atau meningkatkan ke Databricks SDK untuk Python 0.6.0 atau lebih tinggi untuk kompatibilitas maksimum dengan autentikasi notebook Azure Databricks default, terlepas dari versi Databricks Runtime.
Anda harus menginstal atau meningkatkan Databricks SDK untuk Python pada kluster Azure Databricks jika Anda ingin memanggil API tingkat akun Azure Databricks atau jika Anda ingin menggunakan jenis autentikasi Azure Databricks selain autentikasi notebook Azure Databricks default, sebagai berikut:
Jenis autentikasi | Databricks SDK untuk versi Python |
---|---|
Autentikasi mesin-ke-mesin (M2M) OAuth | 0.18.0 ke atas |
Autentikasi pengguna ke komputer (U2M) OAuth | 0.19.0 ke atas |
Autentikasi perwakilan layanan ID Microsoft Entra | Semua versi |
Autentikasi Azure CLI | Semua versi |
Autentikasi token akses pribadi Databricks | Semua versi |
Autentikasi identitas terkelola Azure belum didukung.
Autentikasi notebook Azure Databricks tidak berfungsi dengan profil konfigurasi Azure Databricks.
Langkah 1: Menginstal atau meningkatkan Databricks SDK untuk Python
Notebook Azure Databricks Python dapat menggunakan Databricks SDK untuk Python sama seperti pustaka Python lainnya. Untuk menginstal atau meningkatkan SDK Databricks untuk pustaka Python pada kluster Azure Databricks yang dilampirkan, jalankan
%pip
perintah ajaib dari sel notebook sebagai berikut:%pip install databricks-sdk --upgrade
Setelah menjalankan
%pip
perintah ajaib, Anda harus memulai ulang Python untuk membuat pustaka yang diinstal atau ditingkatkan tersedia untuk buku catatan. Untuk melakukan ini, jalankan perintah berikut dari sel buku catatan segera setelah sel dengan%pip
perintah ajaib:dbutils.library.restartPython()
Untuk menampilkan versi Databricks SDK for Python yang terinstal, jalankan perintah berikut dari sel buku catatan:
%pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
Langkah 2: Jalankan kode Anda
Di sel buku catatan Anda, buat kode Python yang mengimpor lalu memanggil Databricks SDK untuk Python. Contoh berikut menggunakan autentikasi notebook Azure Databricks default untuk mencantumkan semua kluster di ruang kerja Azure Databricks Anda:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
for c in w.clusters.list():
print(c.cluster_name)
Saat Anda menjalankan sel ini, daftar nama semua kluster yang tersedia di ruang kerja Azure Databricks Anda muncul.
Untuk menggunakan jenis autentikasi Azure Databricks yang berbeda, lihat Jenis autentikasi Azure Databricks yang didukung dan klik tautan yang sesuai untuk detail teknis tambahan.
Menggunakan Utilitas Databricks
Anda dapat memanggil referensi Utilitas Databricks (dbutils) dari Databricks SDK untuk kode Python yang berjalan di komputer pengembangan lokal Anda atau dari dalam buku catatan Azure Databricks.
- Dari komputer pengembangan lokal Anda, Utilitas Databricks hanya memiliki akses ke
dbutils.fs
grup perintah , ,dbutils.secrets
dbutils.widgets
, dandbutils.jobs
. - Dari notebook Azure Databricks yang dilampirkan ke kluster Azure Databricks, Utilitas Databricks memiliki akses ke semua grup perintah Utilitas Databricks yang tersedia, tidak hanya
dbutils.fs
, ,dbutils.secrets
dandbutils.widgets
. Selain itu,dbutils.notebook
grup perintah hanya terbatas pada dua tingkat perintah, misalnyadbutils.notebook.run
ataudbutils.notebook.exit
.
Untuk memanggil Utilitas Databricks dari komputer pengembangan lokal Anda atau notebook Azure Databricks, gunakan dbutils
dalam WorkspaceClient
. Contoh kode ini menggunakan autentikasi notebook Azure Databricks default untuk memanggil dbutils
untuk mencantumkan WorkspaceClient
jalur semua objek di akar DBFS ruang kerja.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
d = w.dbutils.fs.ls('/')
for f in d:
print(f.path)
Atau, Anda dapat menghubungi dbutils
secara langsung. Namun, Anda terbatas hanya menggunakan autentikasi notebook Azure Databricks default. Contoh kode ini memanggil dbutils
langsung untuk mencantumkan semua objek di akar DBFS ruang kerja.
from databricks.sdk.runtime import *
d = dbutils.fs.ls('/')
for f in d:
print(f.path)
Untuk mengakses volume Unity Catalog, gunakan files
dalam WorkspaceClient
. Lihat Mengelola file dalam volume Katalog Unity. Anda tidak dapat menggunakan dbutils
dengan sendirinya atau di dalam WorkspaceClient
untuk mengakses volume.
Lihat juga Interaksi dengan dbutil.
Contoh kode
Contoh kode berikut menunjukkan cara menggunakan Databricks SDK untuk Python untuk membuat dan menghapus kluster, menjalankan pekerjaan, dan mencantumkan grup tingkat akun. Contoh kode ini menggunakan autentikasi notebook Azure Databricks default. Untuk detail tentang autentikasi notebook Azure Databricks default, lihat Menggunakan Databricks SDK untuk Python dari buku catatan Azure Databricks. Untuk detail tentang autentikasi default di luar notebook, lihat Mengautentikasi Databricks SDK untuk Python dengan akun atau ruang kerja Azure Databricks Anda.
Untuk contoh kode tambahan, lihat contoh di repositori Databricks SDK for Python di GitHub. Lihat juga:
Membuat kluster
Contoh kode ini membuat kluster dengan versi Databricks Runtime dan jenis node kluster yang ditentukan. Kluster ini memiliki satu pekerja, dan kluster akan secara otomatis berakhir setelah 15 menit waktu diam.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
print("Attempting to create cluster. Please wait...")
c = w.clusters.create_and_wait(
cluster_name = 'my-cluster',
spark_version = '12.2.x-scala2.12',
node_type_id = 'Standard_DS3_v2',
autotermination_minutes = 15,
num_workers = 1
)
print(f"The cluster is now ready at " \
f"{w.config.host}#setting/clusters/{c.cluster_id}/configuration\n")
Hapus kluster secara permanen
Contoh kode ini menghapus kluster secara permanen dengan ID kluster yang ditentukan dari ruang kerja.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
c_id = input('ID of cluster to delete (for example, 1234-567890-ab123cd4): ')
w.clusters.permanent_delete(cluster_id = c_id)
Membuat pekerjaan
Contoh kode ini membuat pekerjaan Azure Databricks yang menjalankan notebook yang ditentukan pada kluster yang ditentukan. Saat kode berjalan, kode mendapatkan jalur notebook yang ada, ID kluster yang ada, dan pengaturan pekerjaan terkait dari pengguna di terminal.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import Task, NotebookTask, Source
w = WorkspaceClient()
job_name = input("Some short name for the job (for example, my-job): ")
description = input("Some short description for the job (for example, My job): ")
existing_cluster_id = input("ID of the existing cluster in the workspace to run the job on (for example, 1234-567890-ab123cd4): ")
notebook_path = input("Workspace path of the notebook to run (for example, /Users/someone@example.com/my-notebook): ")
task_key = input("Some key to apply to the job's tasks (for example, my-key): ")
print("Attempting to create the job. Please wait...\n")
j = w.jobs.create(
name = job_name,
tasks = [
Task(
description = description,
existing_cluster_id = existing_cluster_id,
notebook_task = NotebookTask(
base_parameters = dict(""),
notebook_path = notebook_path,
source = Source("WORKSPACE")
),
task_key = task_key
)
]
)
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Membuat pekerjaan yang menggunakan komputasi tanpa server
Contoh berikut membuat pekerjaan yang menggunakan Komputasi Tanpa Server untuk Alur Kerja:
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import NotebookTask, Source, Task
w = WorkspaceClient()
j = w.jobs.create(
name = "My Serverless Job",
tasks = [
Task(
notebook_task = NotebookTask(
notebook_path = "/Users/user@databricks.com/MyNotebook",
source = Source("WORKSPACE")
),
task_key = "MyTask",
)
]
)
Mengelola file dalam volume Katalog Unity
Contoh kode ini menunjukkan berbagai panggilan ke files
fungsionalitas dalam WorkspaceClient
untuk mengakses volume Katalog Unity.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Define volume, folder, and file details.
catalog = 'main'
schema = 'default'
volume = 'my-volume'
volume_path = f"/Volumes/{catalog}/{schema}/{volume}" # /Volumes/main/default/my-volume
volume_folder = 'my-folder'
volume_folder_path = f"{volume_path}/{volume_folder}" # /Volumes/main/default/my-volume/my-folder
volume_file = 'data.csv'
volume_file_path = f"{volume_folder_path}/{volume_file}" # /Volumes/main/default/my-volume/my-folder/data.csv
upload_file_path = './data.csv'
# Create an empty folder in a volume.
w.files.create_directory(volume_folder_path)
# Upload a file to a volume.
with open(upload_file_path, 'rb') as file:
file_bytes = file.read()
binary_data = io.BytesIO(file_bytes)
w.files.upload(volume_file_path, binary_data, overwrite = True)
# List the contents of a volume.
for item in w.files.list_directory_contents(volume_path):
print(item.path)
# List the contents of a folder in a volume.
for item in w.files.list_directory_contents(volume_folder_path):
print(item.path)
# Print the contents of a file in a volume.
resp = w.files.download(volume_file_path)
print(str(resp.contents.read(), encoding='utf-8'))
# Delete a file from a volume.
w.files.delete(volume_file_path)
# Delete a folder from a volume.
w.files.delete_directory(volume_folder_path)
Mencantumkan grup tingkat akun
Contoh kode ini mencantumkan nama tampilan untuk semua grup yang tersedia dalam akun Azure Databricks.
from databricks.sdk import AccountClient
a = AccountClient()
for g in a.groups.list():
print(g.display_name)
Pengujian
Untuk menguji kode Anda, gunakan kerangka kerja pengujian Python seperti pytest. Untuk menguji kode Anda dalam kondisi simulasi tanpa memanggil titik akhir REST API Azure Databricks atau mengubah status akun atau ruang kerja Azure Databricks Anda, gunakan pustaka tiruan Python seperti unittest.mock.
Misalnya, mengingat file berikut bernama helpers.py
yang berisi create_cluster
fungsi yang mengembalikan informasi tentang kluster baru:
# helpers.py
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.compute import ClusterDetails
def create_cluster(
w: WorkspaceClient,
cluster_name: str,
spark_version: str,
node_type_id: str,
autotermination_minutes: int,
num_workers: int
) -> ClusterDetails:
response = w.clusters.create(
cluster_name = cluster_name,
spark_version = spark_version,
node_type_id = node_type_id,
autotermination_minutes = autotermination_minutes,
num_workers = num_workers
)
return response
Dan diberikan file berikut bernama main.py
yang memanggil create_cluster
fungsi:
# main.py
from databricks.sdk import WorkspaceClient
from helpers import *
w = WorkspaceClient()
# Replace <spark-version> with the target Spark version string.
# Replace <node-type-id> with the target node type string.
response = create_cluster(
w = w,
cluster_name = 'Test Cluster',
spark_version = '<spark-version>',
node_type_id = '<node-type-id>',
autotermination_minutes = 15,
num_workers = 1
)
print(response.cluster_id)
File berikut bernama test_helpers.py
menguji apakah create_cluster
fungsi mengembalikan respons yang diharapkan. Daripada membuat kluster di ruang kerja target, pengujian ini mengejek WorkspaceClient
objek, mendefinisikan pengaturan objek yang ditidakan, lalu meneruskan objek yang ditidakan ke create_cluster
fungsi. Pengujian kemudian memeriksa apakah fungsi mengembalikan ID kluster baru yang diharapkan.
# test_helpers.py
from databricks.sdk import WorkspaceClient
from helpers import *
from unittest.mock import create_autospec # Included with the Python standard library.
def test_create_cluster():
# Create a mock WorkspaceClient.
mock_workspace_client = create_autospec(WorkspaceClient)
# Set the mock WorkspaceClient's clusters.create().cluster_id value.
mock_workspace_client.clusters.create.return_value.cluster_id = '123abc'
# Call the actual function but with the mock WorkspaceClient.
# Replace <spark-version> with the target Spark version string.
# Replace <node-type-id> with the target node type string.
response = create_cluster(
w = mock_workspace_client,
cluster_name = 'Test Cluster',
spark_version = '<spark-version>',
node_type_id = '<node-type-id>',
autotermination_minutes = 15,
num_workers = 1
)
# Assert that the function returned the mocked cluster ID.
assert response.cluster_id == '123abc'
Untuk menjalankan pengujian ini, jalankan pytest
perintah dari akar proyek kode, yang harus menghasilkan hasil pengujian yang mirip dengan yang berikut:
$ pytest
=================== test session starts ====================
platform darwin -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: <project-rootdir>
collected 1 item
test_helpers.py . [100%]
======================== 1 passed ==========================
Sumber Daya Tambahan:
Untuk informasi selengkapnya, lihat:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk