Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.txtvenvbağımlılıkları sabitleyebilirsiniz, örneğin, veya pyproject.tomlpoetry.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 kümenizin Databricks Runtime sürümüne uygun Databricks Runtime sürüm notları'na bakın.
- 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.
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
pipiçin kullanındatabricks-sdk. (Bazı sistemlerde, değerini burada ve boyunca ilepip3değiştirmenizpipgerekebilir.)pip3 install databricks-sdkŞiir
poetry add databricks-sdkPython için Databricks SDK'sı
databricks-sdkBeta'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.6Python 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@latestPython paketinin geçerli
Versionve 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-sdkPython 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.pybir 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.pybir dosya varsayarak Python kod dosyanızı çalıştırınpython:Venv
python3.10 main.pyŞiir
Sanal ortamın komut satırındaysanız:
python3.10 main.pyEğer sanal ortamın kabuğunda değilseniz:
poetry run python3.10 main.pyNot
Ö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 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 birleşik kimlik doğrulaması.
Not
Python için Databricks SDK'sı henüz Azure tarafından yönetilen kimliklerle kimlik doğrulaması gerçekleştirmedi.
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
DATABRICKS_CONFIG_PROFILEortam değişkenini ö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
WorkspaceClientoluş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
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 ana bilgisayarı ve erişim belirteci değerlerini sabit olarak 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/Databricks Runtime | 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 not defteri kimlik doğrulaması Databricks Container Services ile ç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:
| Doğrulama türü | 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
Not
Python için Databricks SDK'sı, Databricks Runtime 13.3 LTS veya üzerini kullanan tüm Azure Databricks kümelerine varsayılan olarak yüklenir.
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 --upgradeSihirli komutu çalıştırdıktan
%pipsonra, 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%piphü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 yetkilendirme yöntemleri bölümüne bakın 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ı kullanabilirsiniz.
- Databricks Yardımcı Programları yerel geliştirme makinenizden yalnızca ,
dbutils.fs,dbutils.secretsvedbutils.widgetskomut gruplarınadbutils.jobserişebilir. - Azure Databricks kümesine bağlı bir Azure Databricks not defterinden Databricks Yardımcı Programları tüm kullanılabilir Databricks Yardımcı Programları komut gruplarına erişebilir, ancak
dbutils.notebookkomut grubu yalnızca iki komut düzeyiyle sınırlıdır, örneğindbutils.notebook.runveyadbutils.notebook.exit.
Yerel geliştirme makinenizden veya Azure Databricks not defterinizden Databricks Yardımcı Programlarını çağırmak için içinde dbutilskullanınWorkspaceClient. Bu kod örneği, çalışma alanının DBFS kökündeki tüm nesnelerin yollarını listelemek üzere dbutils içindeki WorkspaceClient çağırmak 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, çalışma alanının DBFS kökündeki tüm nesneleri listelemek için doğrudan dbutils çağırır.
from databricks.sdk.runtime import *
d = dbutils.fs.ls('/')
for f in d:
print(f.path)
Unity Kataloğu birimlerineerişmek için filesiçindeki WorkspaceClient kullanın. Bkz. dbutils kendi başına veya WorkspaceClient içinde kullanamazsınız.
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
- Kümeyi kalıcı olarak silme
- İş oluşturma
- Sunucusuz işlem kullanan bir iş oluşturma
- Unity Kataloğu birimlerinde dosyaları yönetme
- hesap düzeyi grupları listele
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/someone@example.com/MyNotebook",
source = Source("WORKSPACE")
),
task_key = "MyTask",
)
]
)
Unity Kataloğu birimlerinde dosyaları yönetme
Bu kod örneği, Unity Catalog içindeki files'e erişim sağlamak için WorkspaceClient içindeki işlevlerine ç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.
Not
Not defteri için yerel kimlik doğrulama desteklenmez AccountClient, bu nedenle bu örneği bir not defterinde çalıştırmak için oluşturucuda kimlik bilgilerini ayarlamanız gerekir.
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 nesnesini taklit eder, taklit edilen nesnenin ayarlarını tanımlar ve ardından taklit edilen nesneyi create_cluster işlevine iletir. 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 ==========================
Sorun giderme
Bu bölümde Python için Databricks SDK'sı ile ilgili yaygın sorunların çözümleri açıklanmaktadır.
Sorunları veya diğer geri bildirimleri bildirmek için Python için Databricks SDK'sı için bir GitHub sorunu oluşturun.
Hata: Yanıt ayrıştırılamıyor
Python için Databricks SDK'sını kullanmaya çalışırken aşağıdaki hatayı alırsanız, neredeyse her zaman kimlik doğrulama yapılandırmanızla ilgili bir sorun olduğunu gösterir.
Error: unable to parse response. This is likely a bug in the Databricks SDK for Python or the underlying REST API.
Bu hatayla karşılaşırsanız aşağıdakileri doğrulayın:
- Databricks ana bilgisayarınızın doğru ayarlandığından emin olun.
- Kimlik doğrulama yönteminin gerçekleştirmeye çalıştığınız API işlemi için gerekli izinlere sahip olduğunu onaylayın.
- Kurumsal güvenlik duvarının arkasındaysanız API trafiğini engellemediğinden veya yeniden yönlendirmediğinden emin olun.
Bu hatanın yaygın nedenlerinden biri, SDK'yı oturum açma sayfasına yönlendiren ve SDK'nın işleyemediği özel bağlantıdır. Bu durum genellikle VPC uç noktasının ait olduğu ağdan farklı bir ağdan genel İnternet erişimi olmadan yapılandırılmış özel bağlantı özellikli bir çalışma alanına erişmeye çalışırken ortaya çıkar.
Daha fazla ayrıntı için bkz:
Ek kaynaklar
Daha fazla bilgi için bkz.