Python için Databricks SDK'sı
Bu makalede, Python için Databricks SDK'sı ile Azure Databricks hesaplarında, çalışma alanlarında ve ilgili kaynaklarda işlemleri otomatikleştirmeyi öğ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
Bu özellik 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
venv
bağı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.
- 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.
- Yerel geliştirme makinenizden Python için Databricks SDK'sını kullanmak için bu bölümdeki adımları tamamlayın.
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 kod 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. Bu makalede Python sanal ortamları için venv veya Potetry'nin nasıl kullanılacağı açıklanmaktadır.
ile Python sanal ortamı oluşturma venv
Terminal kümenizden Python kod projenizin kök dizinine kadar aşağıdaki komutu çalıştırın. Bu komut, sanal ortam için Python 3.10'un kullanılmasını ve
venv
ardından sanal ortamın destekleyici dosyalarını Python kod projenizin kök dizininde adlı.venv
gizli bir dizinde oluşturur.# Linux and macOS python3.10 -m venv ./.venv # Windows python3.10 -m venv .\.venv
Sanal ortamı etkinleştirmek için kullanın
venv
. İşletim sisteminize ve terminal türüne göre kullanılacak doğru komut için venv belgelerine bakın. Örneğin, çalıştıranzsh
macOS'ta:source ./.venv/bin/activate
Sanal ortamın adı (örneğin,
.venv
) terminal isteminizden hemen önce parantez içinde görüntülendiğinde sanal ortamınızın etkinleştirildiğini bilirsiniz.Sanal ortamı istediğiniz zaman devre dışı bırakmak için komutunu
deactivate
çalıştırın.Sanal ortamın adı artık terminal isteminizden hemen önce parantez içinde görüntülenmiyorsa sanal ortamınızın devre dışı bırakıldığını bilirsiniz.
Python için Databricks SDK'sını kullanmaya başlama'ya geçin.
Şiir ile sanal ortam oluşturma
Henüz yapmadıysanız Şiir yükleyin.
Terminal kümenizden Python kod projenizin kök dizinine kadar aşağıdaki komutu çalıştırarak Şiir için Python kod projenizi başlatma talimatını
poetry
alın.poetry init
Şiir, tamamlamanız için birkaç istem gösterir. Bu istemlerin hiçbiri Python için Databricks SDK'sına özgü değil. Bu istemler hakkında bilgi için bkz . init.
İstemleri tamamladıktan sonra, Şiir Python projenize bir
pyproject.toml
dosya ekler. Dosya hakkındapyproject.toml
bilgi için bkz . pyproject.toml dosyası.Terminaliniz python kod projenizin kök dizinine ayarlanmış durumdayken aşağıdaki komutu çalıştırın. Bu komut, dosyayı okuma, bağımlılıkları
poetry
yükleme ve çözme, bağımlılıkları kilitlemek için birpoetry.lock
dosya oluşturma ve son olarak bir sanal ortam oluşturma yönergelerini sunar.pyproject.toml
poetry install
Terminal kümenizden Python kod projenizin kök dizinine kadar aşağıdaki komutu çalıştırarak sanal ortamı etkinleştirmek ve kabuğu girmek için komutunu
poetry
çalıştırın.poetry shell
Sanal ortamınızın etkinleştirildiğini ve sanal ortamın adı terminal isteminizden hemen önce parantez içinde görüntülendiğinde kabuğun girildiğini bilirsiniz.
Sanal ortamı devre dışı bırakmak ve kabukta istediğiniz zaman çıkmak için komutunu
exit
çalıştırın.Sanal ortamın adı artık terminal isteminizden hemen önce parantez içinde görüntülenmediğinde kabukta çıktığınızı öğreneceksiniz.
Şiir sanal ortamları oluşturma ve yönetme hakkında daha fazla bilgi için bkz . Ortamları yönetme.
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.
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 ilepip
değiştirmenizpip3
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.6
yüklemek için:Venv
pip3 install databricks-sdk==0.1.6
Şiir
poetry add databricks-sdk==0.1.6
İpucu
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
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)
komutunu çalıştırarak, adlı
main.py
bir dosya varsayarak Python kod dosyanızı çalıştırınpython
: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() # ...
- 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
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. Python için Databricks SDK'sı, Databricks Runtime 13.3 LTS veya üzerini kullanan tüm Azure Databricks kümelerine zaten yüklenmiştir. 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.
Databricks Runtime'ın belirli bir sürümü için varsayılan olarak yüklenen Python için Databricks SDK'sının sürüm numarasını görmek için, bu Databricks Runtime sürümü için Databricks Runtime sürüm notlarının "Yüklü Python kitaplıkları" bölümüne bakın.
Python 0.6.0 ve üzeri için Databricks SDK'sı varsayılan Azure Databricks not defteri kimlik doğrulamasını kullanır. 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.
Databricks Runtime 13.3 LTS ve üzeri, Python 0.1.7 veya üzeri için Databricks SDK'sı yüklü varsayılan Azure Databricks not defteri kimlik doğrulamasını destekler. Databricks Runtime 10.4 LTS ve üzeri, Python 0.1.10 veya üzeri için Databricks SDK'sı yüklü varsayılan Azure Databricks not defteri kimlik doğrulamasını destekler. Ancak Databricks, Databricks Runtime sürümünden bağımsız olarak varsayılan Azure Databricks not defteri kimlik doğrulamasıyla maksimum uyumluluk için Python 0.6.0 veya üzeri için Databricks SDK'sını yüklemenizi veya yükseltmenizi önerir.
Azure Databricks hesap düzeyinde API'leri çağırmak veya varsayılan Azure Databricks not defteri kimlik doğrulaması dışında bir Azure Databricks kimlik doğrulama türü kullanmak istiyorsanız, Azure Databricks kümesinde Python için Databricks SDK'sını aşağıdaki gibi yüklemeniz veya yükseltmeniz gerekir:
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.
Azure Databricks not defteri kimlik doğrulaması, Azure Databricks yapılandırma profilleriyle çalışmaz.
1. Adım: Python için Databricks SDK'sını yükleme veya yükseltme
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
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()
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 . Desteklenen Azure Databricks kimlik doğrulama türleri 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.widgets
vedbutils.jobs
komut gruplarınadbutils.fs
erişebilir. - Azure Databricks kümesine bağlı bir Azure Databricks not defterinden Databricks Yardımcı Programları yalnızca
dbutils.fs
,dbutils.secrets
vedbutils.widgets
değil tüm kullanılabilir Databricks Yardımcı Programları komut gruplarına erişebilir. Ayrıca,dbutils.notebook
komut grubu yalnızca veyadbutils.notebook.exit
gibidbutils.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 WorkspaceClient
kullanı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 kendi başına veya içinde WorkspaceClient
kullanamazsınızdbutils
. Bunun yerine içinde WorkspaceClient
kullanınfiles
. Bu kod örneği, belirtilen birimdeki belirtilen dosyanın içeriğini yazdırmak için içinde WorkspaceClient
öğesini çağırırfiles
.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
resp = w.files.download('/Volumes/main/default/my-volume/sales.csv')
print(str(resp.contents.read(), encoding='utf-8'))
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
Önemli
İş akışları için sunucusuz işlem Genel Önizleme aşamasındadır. Uygunluk ve etkinleştirme hakkında bilgi için bkz . Sunucusuz işlem genel önizlemesini etkinleştirme.
Aşağıdaki örnek, İş Akışları 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",
)
]
)
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.
Örneğin, yeni küme hakkında bilgi döndüren bir create_cluster
işlev içeren adlı helpers.py
aşağıdaki dosya göz önünde bulundurulduğunda:
# 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
ve işlevini ç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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin