Aracılığıyla paylaş


Python için Databricks SDK'sı

Not

Databricks, işleri ve diğer Databricks kaynaklarını kaynak kodu olarak oluşturmak, geliştirmek, dağıtmak ve test etme amacıyla Databricks Varlık Paketleri önerir. Bkz . Databricks Varlık Paketleri nedir?.

Bu makalede, Python için Databricks SDK'sı ile Azure Databricks işlemlerini otomatikleştirmeyi ve geliştirmeyi hızlandırmayı öğreneceksiniz. Bu makalede, Belgeleri Okuma hakkındaki Python için Databricks SDK belgeleri ve GitHub'daki Python için Databricks SDK deposundaki kod örnekleri desteklenir.

Not

Python için Databricks SDK'sı Beta sürümündedir ve üretimde kullanılabilir.

Beta döneminde Databricks, kodunuzun bağımlı olduğu Python için Databricks SDK'sının belirli bir ikincil sürümüne bağımlılığı sabitlemenizi önerir. Örneğin, gibi dosyalarda requirements.txt venvbağımlılıkları sabitleyebilirsiniz, örneğin, veya pyproject.toml poetry.lock şiir için. Bağımlılıkları sabitleme hakkında daha fazla bilgi için bkz. Sanal Ortamlar ve Paketleri veya venvŞiir için bağımlılıkları yükleme.

Başlamadan önce

Python için Databricks SDK'sını bir Azure Databricks not defteri içinden veya yerel geliştirme makinenizden kullanabilirsiniz.

Python için Databricks SDK'sını kullanmaya başlamadan önce geliştirme makinenizde aşağıdakiler olmalıdır:

  • Azure Databricks kimlik doğrulaması yapılandırıldı.
  • Python 3.8 veya üzeri yüklü. Databricks, Azure Databricks işlem kaynaklarını otomatikleştirmek için Python'ın hedef Azure Databricks işlem kaynağınızda yüklü olanla eşleşen birincil ve ikincil sürümlerinin yüklü olduğunu önerir. Bu makaledeki örnekler, Python 3.10 yüklü Databricks Runtime 13.3 LTS ile kümeleri otomatikleştirmeyi temel alır. Doğru sürüm için bkz . Databricks Runtime sürüm notları sürümleri ve kümenizin Databricks Runtime sürümü için uyumluluk .
  • Databricks, Python için Databricks SDK'sı ile kullandığınız her Python projesi için bir Python sanal ortamı oluşturmanızı ve etkinleştirmenizi önerir. Python sanal ortamları, kod projenizin Python ve Python paketlerinin uyumlu sürümlerini (bu örnekte Python için Databricks SDK paketi) kullandığından emin olunmaya yardımcı olur. Python sanal ortamları hakkında daha fazla bilgi için bkz . venv veya Şiir.

Python için Databricks SDK'sını kullanmaya başlama

Bu bölümde, yerel geliştirme makinenizden Python için Databricks SDK'sını kullanmaya nasıl başlandığı açıklanmaktadır. Azure Databricks not defterinin içinden Python için Databricks SDK'sını kullanmak için Azure Databricks not defterinden Python için Databricks SDK'sını kullanma bölümüne atlayın.

  1. Azure Databricks kimlik doğrulaması yapılandırılmış, Python zaten yüklü ve Python sanal ortamınız zaten etkin olan geliştirme makinenizde, Python Paket Dizini'nden (PyPI) databricks-sdk paketini (ve bağımlılıklarını) aşağıdaki gibi yükleyin:

    Venv

    Paketi yüklemek databricks-sdk için kullanınpip. (Bazı sistemlerde, değerini burada ve boyunca ile pipdeğiştirmeniz pip3 gerekebilir.)

    pip3 install databricks-sdk
    

    Şiir

    poetry add databricks-sdk
    

    Python için Databricks SDK'sı databricks-sdk Beta'dayken paketin belirli bir sürümünü yüklemek için paketin Sürüm geçmişine bakın. Örneğin, sürümünü 0.1.6yüklemek için:

    Venv

    pip3 install databricks-sdk==0.1.6
    

    Şiir

    poetry add databricks-sdk==0.1.6
    

    Python için Databricks SDK paketinin mevcut yüklemesini en son sürüme yükseltmek için aşağıdaki komutu çalıştırın:

    Venv

    pip3 install --upgrade databricks-sdk
    

    Şiir

    poetry add databricks-sdk@latest
    

    Python paketinin geçerli Version ve diğer ayrıntıları için Databricks SDK'sını göstermek için aşağıdaki komutu çalıştırın:

    Venv

    pip3 show databricks-sdk
    

    Şiir

    poetry show databricks-sdk
    
  2. Python sanal ortamınızda, Python için Databricks SDK'sını içeri aktaran bir Python kod dosyası oluşturun. Aşağıdaki örnek, aşağıdaki içeriklere sahip adlı main.py bir dosyada Azure Databricks çalışma alanınızdaki tüm kümeleri listeler:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    
    for c in w.clusters.list():
      print(c.cluster_name)
    
  3. komutunu çalıştırarak, adlı main.pybir dosya varsayarak Python kod dosyanızı çalıştırın python :

    Venv

    python3.10 main.py
    

    Şiir

    Sanal ortamın kabuğundaysanız:

    python3.10 main.py
    

    Sanal ortamın kabuğunda değilseniz:

    poetry run python3.10 main.py
    

    Not

    Önceki çağrısında w = WorkspaceClient()hiçbir bağımsız değişken ayarlanmadığından Python için Databricks SDK'sı, Azure Databricks kimlik doğrulamasını gerçekleştirmeye çalışmak için varsayılan işlemini kullanır. Bu varsayılan davranışı geçersiz kılmak için aşağıdaki kimlik doğrulama bölümüne bakın.

Azure Databricks hesabınız veya çalışma alanınızla Python için Databricks SDK'sının kimliğini doğrulama

Bu bölümde, yerel geliştirme makinenizden Azure Databricks hesabınıza veya çalışma alanınıza python için Databricks SDK'sının kimliğinin nasıl doğrulandığı açıklanmaktadır. Azure Databricks not defteri içinden Python için Databricks SDK'sının kimliğini doğrulamak için Azure Databricks not defterinden Python için Databricks SDK'sını kullanma bölümüne atlayın.

Python için Databricks SDK'sı, kimlik doğrulamasına yönelik birleştirilmiş ve tutarlı bir mimari ve programlı yaklaşım olan Databricks istemci birleşik kimlik doğrulama standardını uygular. Bu yaklaşım, Azure Databricks ile kimlik doğrulamasını ayarlamayı ve otomatikleştirmeyi daha merkezi ve öngörülebilir hale getirmenizi sağlar. Databricks kimlik doğrulamasını bir kez yapılandırmanıza ve daha fazla kimlik doğrulaması yapılandırması değişikliği yapmadan bu yapılandırmayı birden çok Databricks aracında ve SDK'da kullanmanıza olanak tanır. Python'da daha eksiksiz kod örnekleri de dahil olmak üzere daha fazla bilgi için bkz . Databricks istemcisi birleşik kimlik doğrulaması.

Not

Python için Databricks SDK'sı henüz Azure yönetilen kimlikleri kimlik doğrulamasını uygulamadı.

Python için Databricks SDK'sı ile Databricks kimlik doğrulamasını başlatmak için kullanılabilir kodlama desenlerinden bazıları şunlardır:

  • Aşağıdakilerden birini yaparak Databricks varsayılan kimlik doğrulamasını kullanın:

    • Hedef Databricks kimlik doğrulama türü için gerekli alanlarla özel bir Databricks yapılandırma profili oluşturun veya tanımlayın. Ardından ortam değişkenini DATABRICKS_CONFIG_PROFILE özel yapılandırma profilinin adına ayarlayın.
    • Hedef Databricks kimlik doğrulama türü için gerekli ortam değişkenlerini ayarlayın.

    Ardından databricks varsayılan kimlik doğrulamasıyla bir nesne örneği WorkspaceClient oluşturun:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    # ...
    
  • Azure Databricks kişisel erişim belirteçleri gibi hassas bilgilerin kodunuzda açığa çıkmasına neden olduğundan, gerekli alanların sabit kodlanması desteklenir ancak önerilmez. Aşağıdaki örnek Databricks belirteci kimlik doğrulaması için Azure Databricks konağı ve erişim belirteci değerlerini sabit kodlar:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(
      host  = 'https://...',
      token = '...'
    )
    # ...
    

Ayrıca Bkz. Python için Databricks SDK'sı belgelerinde kimlik doğrulaması .

Azure Databricks not defterinden Python için Databricks SDK'sını kullanma

Python için Databricks SDK'sının yüklü olduğu ekli bir Azure Databricks kümesine sahip bir Azure Databricks not defterinden Python için Databricks SDK'sını çağırabilirsiniz. Databricks Runtime 13.3 LTS veya üzerini kullanan tüm Azure Databricks kümelerine varsayılan olarak yüklenir. Databricks Runtime 12.2 LTS ve altı kullanan Azure Databricks kümeleri için önce Python için Databricks SDK'sını yüklemeniz gerekir. Bkz . 1. Adım: Python için Databricks SDK'sını yükleme veya yükseltme.

Belirli bir Databricks Runtime sürümü için yüklenen Python için Databricks SDK'sını görmek için, bu sürüme ilişkin Databricks Runtime sürüm notlarının Yüklü Python kitaplıkları bölümüne bakın.

Databricks, SDK'nın kullanılabilir en son sürümünü PiPy'den yüklemenizi önerir, ancak varsayılan Azure Databricks not defteri kimlik doğrulaması tüm Databricks Runtime sürümlerinde sürüm 0.6.0 ve üzeri tarafından kullanıldığından Python 0.6.0 veya üzeri için Databricks SDK'sına en azından yükleme veya yükseltme yapmanızı önerir.

Not

Databricks Runtime 15.1, Python için Databricks SDK'sının (0.20.0) yükseltme gerektirmeden varsayılan not defteri kimlik doğrulamasını destekleyen bir sürümünün yüklü olduğu ilk Databricks Runtime'dır.

Aşağıdaki tabloda Python ve Databricks Runtime sürümleri için Databricks SDK'sı için not defteri kimlik doğrulaması desteği özetlenmektedir:

SDK/DBR 10.4 LTS 11.3 LTS 12,3 LTS 13.3 LTS 14,3 LTS 15.1 ve üzeri
0.1.7 ve altı
0.1.10
0.6.0
0.20.0 ve üzeri

Varsayılan Azure Databricks not defteri kimlik doğrulaması, Azure Databricks'in kendi kullanımı için arka planda otomatik olarak oluşturduğu geçici bir Azure Databricks kişisel erişim belirtecini kullanır. Azure Databricks, not defteri çalışmayı durdurduktan sonra bu geçici belirteci siler.

Önemli

  • Varsayılan Azure Databricks not defteri kimlik doğrulaması yalnızca kümenin sürücü düğümünde çalışır ve kümenin çalışan veya yürütücü düğümlerinden herhangi birinde çalışmaz.
  • Azure Databricks not defteri kimlik doğrulaması, Azure Databricks yapılandırma profilleriyle çalışmaz.

Azure Databricks hesap düzeyinde API'leri çağırmak veya varsayılan Databricks not defteri kimlik doğrulaması dışında bir Databricks kimlik doğrulama türü kullanmak istiyorsanız, aşağıdaki kimlik doğrulama türleri de desteklenir:

Authentication type Python sürümleri için Databricks SDK'sı
OAuth makineden makineye (M2M) kimlik doğrulaması 0.18.0 ve üzeri
OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması 0.19.0 ve üzeri
Microsoft Entra ID hizmet sorumlusu kimlik doğrulaması Tüm sürümler
Azure CLI kimlik doğrulaması Tüm sürümler
Databricks kişisel erişim belirteci kimlik doğrulaması Tüm sürümler

Azure yönetilen kimlik kimlik doğrulaması henüz desteklenmiyor.

1. Adım: Python için Databricks SDK'sını yükleme veya yükseltme

  1. Azure Databricks Python not defterleri, python için Databricks SDK'sını diğer Python kitaplıklarında olduğu gibi kullanabilir. Ekli Azure Databricks kümesine Python kitaplığı için Databricks SDK'sını yüklemek veya yükseltmek için, aşağıdaki gibi bir not defteri hücresinden magic komutunu çalıştırın %pip :

    %pip install databricks-sdk --upgrade
    
  2. Sihirli komutu çalıştırdıktan %pip sonra, yüklü veya yükseltilmiş kitaplığı not defteri için kullanılabilir hale getirmek için Python'ı yeniden başlatmanız gerekir. Bunu yapmak için, sihirli komutuyla %pip hücreden hemen sonra bir not defteri hücresinden aşağıdaki komutu çalıştırın:

    dbutils.library.restartPython()
    
  3. Python için Databricks SDK'sının yüklü sürümünü görüntülemek için bir not defteri hücresinden aşağıdaki komutu çalıştırın:

    %pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
    

2. Adım: Kodunuzu çalıştırma

Not defteri hücrelerinizde, Python için Databricks SDK'sını içeri aktaran ve çağıran Python kodu oluşturun. Aşağıdaki örnek, Azure Databricks çalışma alanınızdaki tüm kümeleri listelemek için varsayılan Azure Databricks not defteri kimlik doğrulamasını kullanır:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

for c in w.clusters.list():
  print(c.cluster_name)

Bu hücreyi çalıştırdığınızda, Azure Databricks çalışma alanınızdaki kullanılabilir tüm kümelerin adlarının listesi görüntülenir.

Farklı bir Azure Databricks kimlik doğrulama türü kullanmak için bkz . Azure Databricks kimlik doğrulama yöntemleri ve ek teknik ayrıntılar için ilgili bağlantıya tıklayın.

Databricks Yardımcı Programlarını Kullanma

Yerel geliştirme makinenizde veya bir Azure Databricks not defteri içinde çalışan Python kodu için Databricks SDK'sından Databricks Yardımcı Programları (dbutils) başvurularını çağırabilirsiniz.

  • Databricks Yardımcı Programları yerel geliştirme makinenizden yalnızca , dbutils.secrets, dbutils.widgetsve dbutils.jobs komut gruplarına dbutils.fserişebilir.
  • Azure Databricks kümesine bağlı bir Azure Databricks not defterinden Databricks Yardımcı Programları yalnızca dbutils.fs, dbutils.secretsve dbutils.widgetsdeğil tüm kullanılabilir Databricks Yardımcı Programları komut gruplarına erişebilir. Ayrıca, dbutils.notebook komut grubu yalnızca veya dbutils.notebook.exitgibi dbutils.notebook.run iki komut düzeyiyle sınırlıdır.

Yerel geliştirme makinenizden veya Azure Databricks not defterinizden Databricks Yardımcı Programlarını çağırmak için içinde WorkspaceClientkullanındbutils. Bu kod örneği, çalışma alanının DBFS kökündeki tüm nesnelerin yollarını listelemek üzere içinde WorkspaceClient çağrı dbutils yapmak için varsayılan Azure Databricks not defteri kimlik doğrulamasını kullanır.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
d = w.dbutils.fs.ls('/')

for f in d:
  print(f.path)

Alternatif olarak, doğrudan arayabilirsiniz dbutils . Ancak, yalnızca varsayılan Azure Databricks not defteri kimlik doğrulamasını kullanmakla sınırlıdır. Bu kod örneği doğrudan çalışma alanının DBFS kökündeki tüm nesneleri listelemek için çağırır dbutils .

from databricks.sdk.runtime import *

d = dbutils.fs.ls('/')

for f in d:
  print(f.path)

Unity Kataloğu birimlerine erişmek için içinde kullanın.WorkspaceClientfiles Bkz . Unity Kataloğu birimlerindeki dosyaları yönetme. Birimlere erişmek için kendi başına veya içinde WorkspaceClient kullanamazsınızdbutils.

Ayrıca bkz. dbutils ile etkileşim.

Kod örnekleri

Aşağıdaki kod örneklerinde Python için Databricks SDK'sını kullanarak küme oluşturma ve silme, işleri çalıştırma ve hesap düzeyinde grupları listeleme işlemleri gösterilmektedir. Bu kod örneklerinde varsayılan Azure Databricks not defteri kimlik doğrulaması kullanılır. Varsayılan Azure Databricks not defteri kimlik doğrulaması hakkında ayrıntılı bilgi için bkz . Azure Databricks not defterinden Python için Databricks SDK'sını kullanma. Not defterleri dışında varsayılan kimlik doğrulaması hakkında ayrıntılı bilgi için bkz . Azure Databricks hesabınız veya çalışma alanınızla Python için Databricks SDK'sının kimliğini doğrulama.

Ek kod örnekleri için GitHub'daki Python için Databricks SDK deposundaki örneklere bakın. Ayrıca bkz:

Küme oluşturma

Bu kod örneği, belirtilen Databricks Runtime sürümüne ve küme düğümü türüne sahip bir küme oluşturur. Bu kümenin bir çalışanı vardır ve küme 15 dakikalık boşta kalma süresinden sonra otomatik olarak sonlandırılır.

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")

Kümeyi kalıcı olarak silme

Bu kod örneği, belirtilen küme kimliğine sahip kümeyi çalışma alanından kalıcı olarak siler.

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)

İş oluşturma

Bu kod örneği, belirtilen kümede belirtilen not defterini çalıştıran bir Azure Databricks işi oluşturur. Kod çalışırken, terminaldeki kullanıcıdan mevcut not defterinin yolunu, mevcut küme kimliğini ve ilgili iş ayarlarını alır.

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")

Sunucusuz işlem kullanan bir iş oluşturma

Aşağıdaki örnek, İşler için Sunucusuz İşlem kullanan bir iş oluşturur:

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",
   )
  ]
)

Unity Kataloğu birimlerindeki dosyaları yönetme

Bu kod örneği, bir Unity Kataloğu birimine fileserişmek için içindeki WorkspaceClient işlevlere yönelik çeşitli çağrıları gösterir.

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)

Hesap düzeyinde grupları listeleme

Bu kod örneği, Azure Databricks hesabındaki tüm kullanılabilir grupların görünen adlarını listeler.

from databricks.sdk import AccountClient

a = AccountClient()

for g in a.groups.list():
  print(g.display_name)

Test Etme

Kodunuzu test etmek için pytest gibi Python test çerçevelerini kullanın. Azure Databricks REST API uç noktalarını çağırmadan veya Azure Databricks hesaplarınızın veya çalışma alanlarınızın durumunu değiştirmeden kodunuzu sanal koşullar altında test etmek için unittest.mock gibi Sahte Python kitaplıklarını kullanın.

İpucu

Databricks Labs, kod kalitesini sağlamak için Databricks ile tümleştirme testlerini basitleştirmek için bir pytest eklentisi ve bir pylint eklentisi sağlar.

Adlı aşağıdaki örnek dosya helpers.py , yeni küme hakkında bilgi döndüren bir create_cluster işlev içerir:

# 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

İşlevi çağıran adlı main.py aşağıdaki dosya göz önünde bulundurulduğunda create_cluster :

# 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)

Adlı aşağıdaki dosya test_helpers.py , işlevin create_cluster beklenen yanıtı döndürip döndürmediğini sınar. Bu test, hedef çalışma alanında küme oluşturmak yerine bir WorkspaceClient nesneyle dalga geçer, sahte nesnenin ayarlarını tanımlar ve ardından sahte nesneyi işleve create_cluster geçirir. Test daha sonra işlevin yeni sahte kümenin beklenen kimliğini döndürip döndürmediğini denetler.

# 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'

Bu testi çalıştırmak için kod projesinin pytest kökünden komutunu çalıştırın. Bu, aşağıdakine benzer test sonuçları üretmelidir:

$ 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 ==========================

Ek kaynaklar

Daha fazla bilgi için bkz.