Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.tomlpoetry.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
piphasználhatódatabricks-sdk. (Egyes rendszerekben előfordulhat, hogy az itt és az egészben a helyére kell váltaniapip3pip.)pip3 install databricks-sdkKöltészet
poetry add databricks-sdkHa telepíteni szeretné a
databricks-sdkcsomag 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.6telepítéséhez:Venv
pip3 install databricks-sdk==0.1.6Költészet
poetry add databricks-sdk==0.1.6A 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-sdkKöltészet
poetry add databricks-sdk@latestA 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-sdkKöltészet
poetry show databricks-sdkA 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.pyfá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.pyfuttatja:pythonVenv
python3.10 main.pyKöltészet
Ha a virtuális környezet rendszerhéjában van:
python3.10 main.pyHa nem a virtuális környezet felületén van:
poetry run python3.10 main.pyFeljegyzé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 implementálja a Databricks egységes hitelesítési szabványát , 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 egyesített hitelesítését.
Feljegyzés
A Pythonhoz készült Databricks SDK még nem implementálta a hitelesítést azure-beli felügyelt identitásokkal.
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_PROFILEkö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
WorkspaceClientobjektumot 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. A következő példa rögzíti az Azure Databricks gazda- és hozzáférési jogkivonat-értékeket a Databricks jogkivonat-hitelesítéshez.
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.
- Az Azure Databricks notebookhitelesítés nem működik a Databricks Container Services szolgáltatással.
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
Feljegyzés
A Pythonhoz készült Databricks SDK alapértelmezés szerint telepítve van minden Olyan Azure Databricks-fürtön, amely a Databricks Runtime 13.3 LTS-t vagy újabb verziót használja.
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
%pipalábbiak szerint:%pip install databricks-sdk --upgradeA magic parancs futtatása után újra kell indítania a
%pipPythont, 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%pipmagic 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ületen található összes fürt 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 engedélyezési módszereket , és kattintson a megfelelő hivatkozásra a további technikai részletekért.
Databricks segédprogramok használata
Használhatja a Databricks Utilities a Databricks SDK for Python segítségével, amely a helyi fejlesztői gépen vagy egy Azure Databricks-jegyzetfüzetben fut.
- A helyi fejlesztőgépről a Databricks Utilities csak a
dbutils.fs,dbutils.secrets,dbutils.widgetsésdbutils.jobsparancscsoportokhoz fér hozzá. - Egy Azure Databricks-fürthöz csatolt Azure Databricks-jegyzetfüzetből a Databricks Utilities hozzáfér az összes elérhető Databricks Utilities parancscsoporthoz, de a
dbutils.notebookparancscsoport csak két parancsszintre korlátozódik, példáuldbutils.notebook.runvagydbutils.notebook.exit.
A Databricks Utilities meghívásához használja a helyi fejlesztőgépről vagy egy Azure Databricks-jegyzetfüzetből.dbutilsWorkspaceClient Ez a példakód az alapértelmezett Azure Databricks jegyzetfüzet hitelesítését használja arra, hogy meghívja a dbutils-et a WorkspaceClient-en belül, hogy listázza a munkaterület DBFS gyökerében található összes objektum elérési útját.
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, hogy listázza a munkaterület DBFS-gyökerében lévő összes objektumot.
from databricks.sdk.runtime import *
d = dbutils.fs.ls('/')
for f in d:
print(f.path)
A Unity Catalog kötetekeléréséhez a files-ban használja a WorkspaceClient. Lásd: Fájlok kezelése Unity Catalog-kötetekben. A kötetek eléréséhez nem használhatja dbutils önmagában vagy WorkspaceClient belül.
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:
- A Databricks Workspace API-kra vonatkozó referencia
- A Databricks-fiók API-jaira vonatkozó referencia
- Fürt létrehozása
- Fürt végleges törlése
- Feladat létrehozása
- Kiszolgáló nélküli számítást használó feladat létrehozása
- Fájlok kezelése Unity Catalog-kötetekben
- Fiókszintű csoportok listázása
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/someone@example.com/MyNotebook",
source = Source("WORKSPACE")
),
task_key = "MyTask",
)
]
)
Fájlok kezelése Unity Catalog-kötetekben
Ez a példakód bemutatja a Unity-katalógus filesWorkspaceClienteléréséhez szükséges funkciók 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.
Feljegyzés
A jegyzetfüzet natív hitelesítése AccountClientnem támogatott, ezért meg kell adnia a hitelesítő adatokat a konstruktorban, hogy futtassa ezt a példát egy jegyzetfüzetben.
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.pycreate_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 kiszimulál, definiálja a kiszimulált objektum beállításait, majd átadja a kiszimulált 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 ==========================
Hibaelhárítás
Ez a szakasz a Pythonhoz készült Databricks SDK-val kapcsolatos gyakori problémák megoldásait ismerteti.
Problémák vagy egyéb visszajelzések jelentéséhez hozzon létre egy GitHub-problémát a Pythonhoz készült Databricks SDK-hoz.
Hiba: Nem lehet elemezni a választ
Ha a Következő hibaüzenet jelenik meg a Pythonhoz készült Databricks SDK használatakor, az szinte mindig a hitelesítési konfigurációval kapcsolatos problémát jelez.
Error: unable to parse response. This is likely a bug in the Databricks SDK for Python or the underlying REST API.
Ha ezt a hibát tapasztalja, ellenőrizze a következőket:
- Győződjön meg arról, hogy a Databricks-gazdagép megfelelően van beállítva.
- Győződjön meg arról, hogy a hitelesítési módszer rendelkezik a végrehajtani kívánt API-művelethez szükséges engedélyekkel.
- Ha vállalati tűzfal mögött áll, győződjön meg arról, hogy nem blokkolja vagy irányítja át az API-forgalmat.
A hiba gyakori oka, hogy az SDK-t egy bejelentkezési lapra irányítja át a privát hivatkozás, amelyet az SDK nem tud feldolgozni. Ez általában akkor fordul elő, ha egy olyan privát kapcsolattal kompatibilis munkaterületet próbál elérni, amelynek nincs nyilvános internet-hozzáférése egy másik hálózatról, mint amelyhez a VPC-végpont tartozik.
További részletekért lásd:
További erőforrások
További információk: