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.
Catatan
Databricks merekomendasikan Bundel Aset Databricks untuk membuat, mengembangkan, menyebarkan, dan menguji pekerjaan dan sumber daya Databricks lainnya sebagai kode sumber. Lihat Apa itu Bundel Aset Databricks?.
Dalam artikel ini, Anda mempelajari cara mengotomatiskan operasi Azure Databricks dan mempercepat pengembangan 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
Databricks SDK untuk Python berada 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 catatan rilis tentang versi dan kompatibilitas Databricks Runtime yang sesuai dengan versi Databricks Runtime kluster Anda.
- Databricks merekomendasikan agar Anda membuat dan mengaktifkan lingkungan virtual Python untuk setiap proyek 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). Untuk informasi selengkapnya tentang lingkungan virtual Python, lihat venv atau Poetry.
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
pipuntuk menginstaldatabricks-sdkpaket. (Pada beberapa sistem, Anda mungkin perlu menggantipip3denganpip, di sini dan di seluruh.)pip3 install databricks-sdkPuisi
poetry add databricks-sdkUntuk menginstal versi
databricks-sdkpaket 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.6Puisi
poetry add databricks-sdk==0.1.6Untuk meningkatkan penginstalan paket Databricks SDK for Python yang ada ke versi terbaru, jalankan perintah berikut:
Venv
pip3 install --upgrade databricks-sdkPuisi
poetry add databricks-sdk@latestUntuk menampilkan Databricks SDK untuk paket Python saat ini
Versiondan detail lainnya, jalankan perintah berikut:Venv
pip3 show databricks-sdkPuisi
poetry show databricks-sdkDi lingkungan virtual Python Anda, buat file kode Python yang mengimpor Databricks SDK untuk Python. Contoh berikut, dalam file
main.pybernama 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 menjalankanpythonperintah :Venv
python3.10 main.pyPuisi
Jika Anda berada di shell lingkungan virtual:
python3.10 main.pyJika Anda belum masuk ke shell lingkungan virtual:
poetry run python3.10 main.pyCatatan
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 untuk Python menerapkan standar autentikasi terpadu 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 Databricks.
Catatan
Databricks SDK untuk Python belum menerapkan Autentikasi dengan 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 variabel lingkungan
DATABRICKS_CONFIG_PROFILEke nama profil konfigurasi kustom. - Atur variabel lingkungan yang diperlukan untuk jenis autentikasi Databricks target.
Kemudian buat contoh objek dengan autentikasi
WorkspaceClientdefault 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 variabel lingkungan
Hard-coding bidang yang diperlukan didukung tetapi tidak disarankan, karena berisiko mengekspos informasi sensitif dalam kode Anda, seperti token akses pribadi Azure Databricks. Contoh berikut menggunakan kode statis untuk nilai host Azure Databricks dan 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. Ini diinstal secara default 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 databricks SDK untuk versi Python yang diinstal untuk versi Databricks Runtime tertentu, lihat bagian Pustaka Python terinstal dari catatan rilis Databricks Runtime untuk versi tersebut.
Databricks merekomendasikan agar Anda menginstal versi terbaru SDK yang tersedia dari PiPy, tetapi pada penginstalan atau peningkatan minimum ke Databricks SDK untuk Python 0.6.0 atau lebih tinggi, karena autentikasi notebook Azure Databricks default digunakan oleh versi 0.6.0 ke atas pada semua versi Databricks Runtime.
Catatan
Databricks Runtime 15.1 adalah Databricks Runtime pertama yang memiliki versi Databricks SDK untuk Python (0.20.0) yang diinstal yang mendukung autentikasi notebook default tanpa perlu peningkatan.
Tabel berikut menguraikan dukungan autentikasi notebook untuk Databricks SDK untuk versi Python dan Databricks Runtime:
| SDK/Databricks Runtime | 10.4 LTS | 11.3 LTS | 12.3 LTS | 13.3 LTS | 14.3 LTS | 15.1 ke atas |
|---|---|---|---|---|---|---|
| 0.1.7 ke bawah | ||||||
| 0.1.10 | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 0.6.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 0.20.0 ke atas | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
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.
- Autentikasi notebook Azure Databricks tidak berfungsi dengan profil konfigurasi Azure Databricks.
- Autentikasi notebook Azure Databricks tidak berfungsi dengan Databricks Container Services.
Jika Anda ingin memanggil API tingkat akun Azure Databricks atau jika Anda ingin menggunakan jenis autentikasi Databricks selain autentikasi buku catatan Databricks default, jenis autentikasi berikut ini juga didukung:
| 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.
Langkah 1: Menginstal atau meningkatkan Databricks SDK untuk Python
Catatan
Databricks SDK untuk Python diinstal secara default pada semua kluster Azure Databricks yang menggunakan Databricks Runtime 13.3 LTS atau lebih tinggi.
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
%pipperintah ajaib dari sel notebook sebagai berikut:%pip install databricks-sdk --upgradeSetelah menjalankan
%pipperintah 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%pipperintah 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 Metode otorisasi dan klik tautan terkait untuk detail teknis tambahan.
Gunakan Utilitas Databricks
Anda dapat menggunakan Utilitas Databricks dari Databricks SDK untuk kode Python yang dijalankan di komputer pengembangan lokal Anda atau dari dalam notebook Azure Databricks.
- Dari komputer pengembangan lokal Anda, Utilitas Databricks hanya memiliki akses ke
dbutils.fsgrup perintah , ,dbutils.secretsdbutils.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, tetapi grup perintah
dbutils.notebookhanya terbatas pada dua tingkat perintah, misalnyadbutils.notebook.runataudbutils.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 dalam WorkspaceClient untuk mencantumkan 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 di volume Katalog Unity. Anda tidak dapat menggunakan dbutils dengan sendirinya atau 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
- Menghapus kluster secara permanen
- Membuat pekerjaan
- Membuat pekerjaan yang menggunakan komputasi tanpa server
- Mengelola file dalam volume Katalog Unity
- Mencantumkan grup tingkat akun
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 Pekerjaan:
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/someone@example.com/MyNotebook",
source = Source("WORKSPACE")
),
task_key = "MyTask",
)
]
)
Mengelola file dalam volume Katalog Unity
Contoh kode ini menunjukkan berbagai panggilan fungsi
Databricks SDK for Python menyediakan dua cara untuk mengunggah dan mengunduh file.
upload_from dan download_to direkomendasikan untuk jalur file lokal.
upload dan download direkomendasikan untuk data dalam antarmuka memori dan streaming. Keempat metode mendukung file hingga ukuran maksimum yang didukung oleh penyimpanan cloud yang mendasar saat menggunakan SDK v0.72.0 atau yang lebih baru.
Jika akun penyimpanan Azure mengaktifkan firewall, ada batas ukuran file 5 GB.
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 (method 1: recommended when your data is in a local file path)
w.files.upload_from(volume_file_path, upload_file_path, overwrite=True)
# Upload a file to a volume (method 2: recommended when your data is in-memory, or not a local file)
with open(upload_file_path, "rb") as f:
w.files.upload(volume_file_path, io.BytesIO(f.read()), 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)
# Download a file from a volume (method 1: recommended when data needs to be stored in a local file; fastest)
w.files.download_to(volume_file_path, local_download_path)
# Download a file from a volume (method 2: recommended when you need the data in-memory)
resp = w.files.download(volume_file_path)
chunk_size = 8192
with resp.contents as f:
while True:
chunk = f.read(chunk_size)
if not chunk:
break
print(f"Read {len(chunk)} characters")
# 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.
Catatan
Autentikasi notebook-native tidak didukung untuk AccountClient, jadi Anda harus mengatur kredensial di konstruktor untuk menjalankan contoh ini di buku catatan.
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.
Petunjuk / Saran
Databricks Labs menyediakan plugin pytest untuk menyederhanakan pengujian integrasi dengan Databricks dan plugin pylint untuk memastikan kualitas kode.
Contoh file berikut bernama helpers.py 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
Mengingat 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 mensimulasikan objek WorkspaceClient, mendefinisikan pengaturan objek yang disimulasikan, kemudian meneruskan objek yang disimulasikan ke fungsi create_cluster. Pengujian kemudian memeriksa apakah fungsi mengembalikan ID yang diharapkan dari kluster baru yang di-mock.
# 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 ==========================
Troubleshooting
Bagian ini menjelaskan solusi untuk masalah umum dengan Databricks SDK untuk Python.
Untuk melaporkan masalah atau umpan balik lainnya, buat masalah GitHub untuk Databricks SDK untuk Python.
Kesalahan: Tidak dapat mengurai respons
Jika Anda menerima kesalahan berikut saat mencoba menggunakan Databricks SDK untuk Python, hampir selalu menunjukkan masalah dengan konfigurasi autentikasi Anda.
Error: unable to parse response. This is likely a bug in the Databricks SDK for Python or the underlying REST API.
Jika Anda mengalami kesalahan ini, verifikasi hal berikut:
- Pastikan host Databricks Anda diatur dengan benar.
- Konfirmasikan bahwa metode autentikasi memiliki izin yang diperlukan untuk operasi API yang coba Anda lakukan.
- Jika Anda berada di belakang firewall perusahaan, pastikan firewall tersebut tidak memblokir atau mengalihkan lalu lintas API.
Penyebab umum kesalahan ini adalah tautan privat yang mengalihkan SDK ke halaman login, yang tidak dapat diproses oleh SDK. Ini biasanya terjadi ketika mencoba mengakses ruang kerja dengan kemampuan tautan privat yang dikonfigurasi tanpa akses ke internet publik dari jaringan yang berbeda dari jaringan yang menjadi milik titik akhir VPC.
Untuk detail selengkapnya, lihat:
Sumber Daya Tambahan:
Untuk informasi selengkapnya, lihat:
- Dokumentasi Databricks SDK untuk Python
- Contoh kode tambahan
- Referensi API Ruang Kerja Databricks
- Referensi API Akun Databricks
- Pembuatan Log
- Operasi jangka panjang
- Respons yang dipaginasi