Databricks SDK for Python
Feljegyzés
A Databricks a Databricks Eszközcsomagokat javasolja a feladatok és más Databricks-erőforrások forráskódként való létrehozásához, fejlesztéséhez, üzembe helyezéséhez és teszteléséhez. Lásd: Mik azok a Databricks-eszközcsomagok?.
Ebből a cikkből megtudhatja, hogyan automatizálhatja az Azure Databricks-műveleteket, és hogyan gyorsíthatja fel a fejlesztést a Pythonhoz készült Databricks SDK-val. Ez a cikk kiegészíti a Databricks SDK for Python dokumentációját a Docs olvasásáról és a GitHubOn található Databricks SDK for Python-adattárban található kódpéldákat .
Feljegyzés
A Pythonhoz készült Databricks SDK bétaverzióban érhető el, és éles környezetben is használható.
A bétaidőszak alatt a Databricks azt javasolja, hogy rögzítse a Pythonhoz készült Databricks SDK adott alverziójának függőségét, amelytől a kód függ. Rögzítheti például a függőségeket olyan fájlokban, mint requirements.txt
a For venv
, vagy pyproject.toml
poetry.lock
a Poetry. A függőségek rögzítésével kapcsolatos további információkért lásd : Virtual Environments and Packages for venv
, or Installies for Poetry.
Mielőtt elkezdené
A Pythonhoz készült Databricks SDK-t egy Azure Databricks-jegyzetfüzetből vagy a helyi fejlesztőgépről használhatja.
- Ha egy Azure Databricks-jegyzetfüzetből szeretné használni a Pythonhoz készült Databricks SDK-t, ugorjon előre a Databricks SDK for Python használatához egy Azure Databricks-jegyzetfüzetből.
- A Databricks SDK for Python helyi fejlesztői gépről való használatához hajtsa végre az ebben a szakaszban leírt lépéseket.
A Pythonhoz készült Databricks SDK használatának megkezdése előtt a fejlesztőgépnek a következőkkel kell rendelkeznie:
- Azure Databricks-hitelesítés konfigurálva.
- A Python 3.8 vagy újabb verziója telepítve van. Az Azure Databricks számítási erőforrásainak automatizálásához a Databricks azt javasolja, hogy a Python fő és alverziói telepítve vannak, amelyek megfelelnek a cél Azure Databricks számítási erőforrásra telepített verziónak. A cikk példái a Databricks Runtime 13.3 LTS-sel rendelkező fürtök automatizálására épülnek, amelyeken telepítve van a Python 3.10. A megfelelő verzióért tekintse meg a Databricks Runtime kibocsátási megjegyzéseinek verzióit és a fürt Databricks Runtime-verziójának kompatibilitását .
- A Databricks azt javasolja, hogy hozzon létre és aktiváljon egy Python virtuális környezetet minden Olyan Python-projekthez, amelyet a Python Databricks SDK-val használ. A Python virtuális környezetek segítenek meggyőződni arról, hogy a kódprojekt a Python- és Python-csomagok kompatibilis verzióit használja (ebben az esetben a Python-csomaghoz készült Databricks SDK-t). További információ a Python virtuális környezetekről: venv vagy Poetry.
Ismerkedés a Pythonhoz készült Databricks SDK-val
Ez a szakasz bemutatja, hogyan kezdheti meg a Pythonhoz készült Databricks SDK használatát a helyi fejlesztőgépről. Ha egy Azure Databricks-jegyzetfüzetből szeretné használni a Pythonhoz készült Databricks SDK-t, ugorjon előre a Databricks SDK for Python használatához egy Azure Databricks-jegyzetfüzetből.
A konfigurált Azure Databricks-hitelesítéssel rendelkező fejlesztői gépen a Python már telepítve van, és a Python virtuális környezete már aktiválva van, telepítse a Databricks-sdk-csomagot (és függőségeit) a Python-csomagindexből (PyPI), az alábbiak szerint:
Venv
A csomag telepítéséhez
databricks-sdk
használhatópip
. (Egyes rendszerekben előfordulhat, hogy az itt és az egészben a helyére kell váltaniapip3
pip
.)pip3 install databricks-sdk
Költészet
poetry add databricks-sdk
Ha telepíteni szeretné a
databricks-sdk
csomag egy adott verzióját, amíg a Pythonhoz készült Databricks SDK bétaverzióban van, tekintse meg a csomag kiadási előzményeit. Például a következő verzió0.1.6
telepítéséhez:Venv
pip3 install databricks-sdk==0.1.6
Költészet
poetry add databricks-sdk==0.1.6
A Databricks SDK for Python-csomag meglévő telepítésének a legújabb verzióra való frissítéséhez futtassa a következő parancsot:
Venv
pip3 install --upgrade databricks-sdk
Költészet
poetry add databricks-sdk@latest
A Python-csomaghoz készült Databricks SDK aktuális
Version
és egyéb adatainak megjelenítéséhez futtassa a következő parancsot:Venv
pip3 show databricks-sdk
Költészet
poetry show databricks-sdk
A Python virtuális környezetben hozzon létre egy Python-kódfájlt, amely importálja a Pythonhoz készült Databricks SDK-t. Az alábbi példa egy, a következő tartalommal ellátott
main.py
fájlban egyszerűen felsorolja az Azure Databricks-munkaterület összes fürtjének listáját:from databricks.sdk import WorkspaceClient w = WorkspaceClient() for c in w.clusters.list(): print(c.cluster_name)
Futtassa a Python-kódfájlt, feltéve, hogy a következő nevű fájlt
main.py
futtatja:python
Venv
python3.10 main.py
Költészet
Ha a virtuális környezet rendszerhéjában van:
python3.10 main.py
Ha nem a virtuális környezet rendszerhéjában van:
poetry run python3.10 main.py
Feljegyzés
Ha az előző hívásban
w = WorkspaceClient()
nem állít be argumentumokat, a Pythonhoz készült Databricks SDK az alapértelmezett folyamatot használja az Azure Databricks-hitelesítés végrehajtására. Az alapértelmezett viselkedés felülbírálásához tekintse meg a következő hitelesítési szakaszt.
A Pythonhoz készült Databricks SDK hitelesítése az Azure Databricks-fiókkal vagy -munkaterülettel
Ez a szakasz azt ismerteti, hogyan hitelesítheti a PythonHoz készült Databricks SDK-t a helyi fejlesztőgépről az Azure Databricks-fiókba vagy -munkaterületre. Ha egy Azure Databricks-jegyzetfüzetből szeretné hitelesíteni a PythonHoz készült Databricks SDK-t, ugorjon előre a Databricks SDK for Python azure Databricks-jegyzetfüzetből való használatához.
A Pythonhoz készült Databricks SDK a Databricks-ügyfél egységes hitelesítési szabványát implementálja, amely a hitelesítés konszolidált és egységes architekturális és programozott megközelítése. Ez a megközelítés segít központosítottabbá és kiszámíthatóbbá tenni az Azure Databricks-hitelesítés beállítását és automatizálását. Lehetővé teszi a Databricks-hitelesítés egyszeri konfigurálását, majd ezt a konfigurációt több Databricks-eszközön és SDK-ban is használhatja további hitelesítési konfigurációmódosítások nélkül. További információkért, beleértve a Python teljesebb kód példáit, tekintse meg a Databricks-ügyfél egyesített hitelesítését.
Feljegyzés
A Pythonhoz készült Databricks SDK még nem implementálta az Azure által felügyelt identitások hitelesítését.
A Databricks-hitelesítésnek a Pythonhoz készült Databricks SDK-val való inicializálásához rendelkezésre álló kódolási minták közé tartoznak a következők:
Használja a Databricks alapértelmezett hitelesítését az alábbiak egyikével:
- Egyéni Databricks-konfigurációs profil létrehozása vagy azonosítása a cél Databricks-hitelesítési típushoz szükséges mezőkkel. Ezután állítsa a
DATABRICKS_CONFIG_PROFILE
környezeti változót az egyéni konfigurációs profil nevére. - Adja meg a cél Databricks-hitelesítési típushoz szükséges környezeti változókat.
Ezután példányosíthat például egy
WorkspaceClient
objektumot a Databricks alapértelmezett hitelesítésével az alábbiak szerint:from databricks.sdk import WorkspaceClient w = WorkspaceClient() # ...
- Egyéni Databricks-konfigurációs profil létrehozása vagy azonosítása a cél Databricks-hitelesítési típushoz szükséges mezőkkel. Ezután állítsa a
A szükséges mezők szigorú kódolása támogatott, de nem ajánlott, mivel a kód bizalmas adatainak, például az Azure Databricks személyes hozzáférési jogkivonatainak felfedését kockáztatja. Az alábbi, a Databricks-jogkivonat-hitelesítéshez használt Azure Databricks-gazda- és hozzáférési jogkivonat-értékek a következő példa:
from databricks.sdk import WorkspaceClient w = WorkspaceClient( host = 'https://...', token = '...' ) # ...
Lásd még : Hitelesítés a Pythonhoz készült Databricks SDK dokumentációjában.
A Pythonhoz készült Databricks SDK használata Egy Azure Databricks-jegyzetfüzetből
A Databricks SDK for Python-funkciókat egy olyan Azure Databricks-jegyzetfüzetből hívhatja meg, amely rendelkezik egy csatlakoztatott Azure Databricks-fürttel, amelyen telepítve van a Pythonhoz készült Databricks SDK. Alapértelmezés szerint minden Olyan Azure Databricks-fürtön telepítve van, amely a Databricks Runtime 13.3 LTS-t vagy újabb verziót használja. A Databricks Runtime 12.2 LTS-t használó Azure Databricks-fürtök esetében először telepítenie kell a Pythonhoz készült Databricks SDK-t. Lásd : 1. lépés: A Pythonhoz készült Databricks SDK telepítése vagy frissítése.
Az adott Databricks Runtime-verzióhoz telepített Databricks SDK for Python-verzió megtekintéséhez tekintse meg az adott verzióhoz tartozó Databricks Runtime kiadási megjegyzéseinek Telepített Python-kódtárak szakaszát.
A Databricks azt javasolja, hogy telepítse az SDK legújabb elérhető verzióját a PiPy-ból, de legalább telepítse vagy frissítsen a Python 0.6.0-s vagy újabb Verziójához készült Databricks SDK-ra, mivel az alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést a 0.6.0-s és újabb verzió használja az összes Databricks-futtatókörnyezeti verzióra.
Feljegyzés
A Databricks Runtime 15.1 az első Databricks Runtime, amely rendelkezik a Pythonhoz készült Databricks SDK (0.20.0) telepített verziójával, amely támogatja az alapértelmezett jegyzetfüzet-hitelesítést frissítés nélkül.
Az alábbi táblázat a Pythonhoz és a Databricks Runtime-verziókhoz készült Databricks SDK notebookhitelesítési támogatását ismerteti:
SDK/DBR | 10.4 LTS | 11.3 LTS | 12.3 LTS | 13.3 LTS | 14.3 LTS | 15.1 vagy újabb |
---|---|---|---|---|---|---|
0.1.7 és újabb | ||||||
0.1.10 | ✓ | ✓ | ✓ | ✓ | ✓ | |
0.6.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
0.20.0 vagy újabb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Az Alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítés egy ideiglenes Azure Databricks személyes hozzáférési jogkivonatra támaszkodik, amelyet az Azure Databricks automatikusan létrehoz a háttérben saját használatra. Az Azure Databricks törli ezt az ideiglenes jogkivonatot a jegyzetfüzet futásának leállása után.
Fontos
- Az Alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítés csak a fürt illesztőprogram-csomópontján működik, a fürt egyik feldolgozói vagy végrehajtó csomópontján sem.
- Az Azure Databricks-jegyzetfüzetek hitelesítése nem működik az Azure Databricks konfigurációs profiljaival.
Ha azure Databricks-fiókszintű API-kat szeretne meghívni, vagy ha az alapértelmezett Databricks-notebook-hitelesítésen kívüli Databricks-hitelesítési típust szeretne használni, a következő hitelesítési típusok is támogatottak:
Hitelesítés típusa | Databricks SDK Python-verziókhoz |
---|---|
OAuth gépről gépre (M2M) hitelesítés | 0.18.0 vagy újabb |
OAuth user-to-machine (U2M) hitelesítés | 0.19.0 vagy újabb |
Microsoft Entra ID alkalmazáspéldányos hitelesítés | Az összes verzió |
Azure CLI hitelesítés | Az összes verzió |
Databricks személyes hozzáférési jogkivonat hitelesítése | Az összes verzió |
Az Azure-beli felügyelt identitások hitelesítése még nem támogatott.
1. lépés: A Pythonhoz készült Databricks SDK telepítése vagy frissítése
Az Azure Databricks Python-jegyzetfüzetek ugyanúgy használhatják a Pythonhoz készült Databricks SDK-t, mint bármely más Python-kódtárat. A Csatolt Azure Databricks-fürtön található Databricks SDK for Python-kódtár telepítéséhez vagy frissítéséhez futtassa a magic parancsot egy jegyzetfüzetcellából az
%pip
alábbiak szerint:%pip install databricks-sdk --upgrade
A magic parancs futtatása után újra kell indítania a
%pip
Pythont, hogy elérhetővé tegye a telepített vagy frissített kódtárat a jegyzetfüzet számára. Ehhez futtassa a következő parancsot egy jegyzetfüzetcellából közvetlenül a cella után a%pip
magic paranccsal:dbutils.library.restartPython()
A Pythonhoz készült Databricks SDK telepített verziójának megjelenítéséhez futtassa a következő parancsot egy jegyzetfüzetcellából:
%pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
2. lépés: A kód futtatása
A jegyzetfüzetcellákban hozzon létre olyan Python-kódot, amely importálja, majd meghívja a PythonHoz készült Databricks SDK-t. Az alábbi példa az Alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést használja az Azure Databricks-munkaterület összes fürtjének listázásához:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
for c in w.clusters.list():
print(c.cluster_name)
A cella futtatásakor megjelenik az Azure Databricks-munkaterületen elérhető összes fürt nevének listája.
Ha másik Azure Databricks-hitelesítési típust szeretne használni, tekintse meg az Azure Databricks hitelesítési módszereit , és kattintson a megfelelő hivatkozásra további technikai részletekért.
A Databricks segédprogramok használata
A Databricks Utilities (dbutils) referenciát meghívhatja a Helyi fejlesztési gépen futó Databricks SDK for Python-kódból vagy egy Azure Databricks-jegyzetfüzetből.
- A helyi fejlesztőgépről a Databricks Utilities csak a
dbutils.fs
,dbutils.secrets
,dbutils.widgets
ésdbutils.jobs
parancscsoportokhoz fér hozzá. - Egy Azure Databricks-fürthöz csatolt Azure Databricks-jegyzetfüzetből a Databricks Utilities az összes elérhető Databricks-segédprogram-parancscsoporthoz hozzáfér, nem csak
dbutils.fs
,dbutils.secrets
ésdbutils.widgets
. Emellett adbutils.notebook
parancscsoport csak két parancsszintre korlátozódik, példáuldbutils.notebook.run
vagydbutils.notebook.exit
.
A Databricks Utilities meghívásához használja a helyi fejlesztőgépről vagy egy Azure Databricks-jegyzetfüzetből.dbutils
WorkspaceClient
Ez a példakód az alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést használja a betárcsázáshoz dbutils
WorkspaceClient
a munkaterület DBFS-gyökerében található összes objektum elérési útjának listázásához.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
d = w.dbutils.fs.ls('/')
for f in d:
print(f.path)
Másik lehetőségként közvetlenül is hívhat dbutils
. Azonban csak az alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést használhatja. Ez a példakód közvetlenül meghívja dbutils
a munkaterület DBFS-gyökerében lévő összes objektum listázására.
from databricks.sdk.runtime import *
d = dbutils.fs.ls('/')
for f in d:
print(f.path)
A Unity Catalog-kötetek eléréséhez használja files
a következőn belülWorkspaceClient
: . Lásd: Fájlok kezelése a Unity-katalógus köteteiben. Nem használhatja dbutils
önmagában vagy belül WorkspaceClient
a kötetek elérését.
Lásd még : Interakció a dbutil-okkal.
Kódpéldák
Az alábbi példakód bemutatja, hogyan használhatja a PythonHoz készült Databricks SDK-t fürtök létrehozására és törlésére, feladatok futtatására és fiókszintű csoportok listázására. Ezek a példakódok alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést használnak. Az Alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítéssel kapcsolatos részletekért lásd : A Pythonhoz készült Databricks SDK használata Egy Azure Databricks-jegyzetfüzetből. A jegyzetfüzeteken kívüli alapértelmezett hitelesítéssel kapcsolatos részletekért lásd : A Databricks SDK for Python hitelesítése az Azure Databricks-fiókkal vagy -munkaterülettel.
További kódpéldákat a GitHub Databricks SDK for Python-adattárában talál. Lásd még:
Fürt létrehozása
Ez a példakód létrehoz egy fürtöt a megadott Databricks Runtime-verzióval és fürtcsomóponttípussal. Ez a fürt egy feldolgozóval rendelkezik, és a fürt 15 perc tétlenség után automatikusan leáll.
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")
Fürt végleges törlése
Ez a példakód véglegesen törli a megadott fürtazonosítóval rendelkező fürtöt a munkaterületről.
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)
Feladat létrehozása
Ez a példakód létrehoz egy Azure Databricks-feladatot, amely a megadott jegyzetfüzetet futtatja a megadott fürtön. A kód futtatásakor lekéri a meglévő jegyzetfüzet elérési útját, a meglévő fürtazonosítót és a kapcsolódó feladatbeállításokat a terminál felhasználójától.
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")
Kiszolgáló nélküli számítást használó feladat létrehozása
Az alábbi példa létrehoz egy kiszolgáló nélküli számítási feladatot a feladatokhoz:
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",
)
]
)
Fájlok kezelése Unity Catalog-kötetekben
Ez a példakód bemutatja a files
Unity-katalógus köteteihez való hozzáféréshez szükséges funkciók WorkspaceClient
különböző hívásait.
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)
Fiókszintű csoportok listázása
Ez a példakód felsorolja az Azure Databricks-fiókban elérhető összes csoport megjelenítendő nevét.
from databricks.sdk import AccountClient
a = AccountClient()
for g in a.groups.list():
print(g.display_name)
Tesztelés
A kód teszteléséhez használjon Python-tesztelési keretrendszereket, például a pytestet. Ha szimulált körülmények között szeretné tesztelni a kódot az Azure Databricks REST API-végpontok meghívása vagy az Azure Databricks-fiókok vagy -munkaterületek állapotának módosítása nélkül, használjon Python-mintakódtárakat, például unittest.mockot.
Tipp.
A Databricks Labs egy pytest beépülő modult biztosít a Databricks integrációs tesztelésének egyszerűsítéséhez, valamint egy pylint beépülő modult a kódminőség biztosítása érdekében.
Az alábbi példafájl helpers.py
neve egy függvényt create_cluster
tartalmaz, amely az új fürtre vonatkozó információkat ad vissza:
# 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
Tekintettel a függvényt meghívó következő fájlra main.py
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)
A következő elnevezett test_helpers.py
fájl ellenőrzi, hogy a create_cluster
függvény a várt választ adja-e vissza. Ahelyett, hogy fürtöt hoz létre a cél-munkaterületen, ez a teszt egy WorkspaceClient
objektumot szimulál, definiálja a kicsúsztatott objektum beállításait, majd átadja a kicsúsztatott objektumot a create_cluster
függvénynek. A teszt ezután ellenőrzi, hogy a függvény visszaadja-e az új szimulált fürt várt azonosítóját.
# 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'
A teszt futtatásához futtassa a parancsot a pytest
kódprojekt gyökérkönyvtárából, amelynek a következőhöz hasonló teszteredményeket kell létrehoznia:
$ 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 ==========================
További erőforrások
További információk: