Bagikan melalui


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

  1. 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
    
  2. 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 menjalankan zsh:

    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

  1. Pasang Puisi, jika Anda belum melakukannya.

  2. 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
    
  3. 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.

  4. Setelah Anda menyelesaikan perintah, Puisi menambahkan pyproject.toml file ke proyek Python Anda. Untuk informasi tentang file, pyproject.toml lihat File pyproject.toml.

  5. Dengan terminal Anda masih diatur ke direktori akar proyek kode Python Anda, jalankan perintah berikut. Perintah ini menginstruksikan poetry untuk membaca pyproject.toml file, menginstal dan menyelesaikan dependensi, membuat poetry.lock file untuk mengunci dependensi, dan akhirnya membuat lingkungan virtual.

    poetry install
    
  6. 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.

  1. 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 menginstal databricks-sdk paket. (Pada beberapa sistem, Anda mungkin perlu mengganti pip3 dengan pip, 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 versi 0.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
    
  2. 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)
    
  3. Jalankan file kode Python Anda, dengan asumsi file bernama main.py, dengan menjalankan python 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()
    # ...
    
  • 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

  1. 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
    
  2. 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()
    
  3. 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.fsgrup perintah , , dbutils.secretsdbutils.widgets, dan dbutils.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.secretsdan dbutils.widgets. Selain itu, dbutils.notebook grup perintah hanya terbatas pada dua tingkat perintah, misalnya dbutils.notebook.run atau dbutils.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: