Megosztás a következőn keresztül:


Databricks SDK for Python

Ebből a cikkből megtudhatja, hogyan automatizálhatja az Azure Databricks-fiókok, -munkaterületek és kapcsolódó erőforrások műveleteit 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

Ez a funkció 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.

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-kódprojekthez, 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). Ez a cikk bemutatja, hogyan használható a Venv vagy a Potetry Python virtuális környezetekhez.

Python virtuális környezet létrehozása a következővel: venv

  1. A terminálkészletből a Python-kódprojekt gyökérkönyvtárába futtassa a következő parancsot. Ez a parancs arra utasítja venv , hogy a Python 3.10-et használja a virtuális környezethez, majd hozza létre a virtuális környezet támogató fájljait a Python-kódprojekt gyökérkönyvtárában elnevezett .venv rejtett könyvtárban.

    # Linux and macOS
    python3.10 -m venv ./.venv
    
    # Windows
    python3.10 -m venv .\.venv
    
  2. A virtuális környezet aktiválására használható venv . Az operációs rendszer és a terminál típusa alapján tekintse meg a megfelelő parancsot a venv dokumentációjában. Például a következőt futtató zshmacOS-en:

    source ./.venv/bin/activate
    

    Tudni fogja, hogy a virtuális környezet akkor aktiválódik, .venvha a virtuális környezet neve (például ) zárójelben jelenik meg, éppen a terminálüzenet előtt.

    A virtuális környezet bármikor inaktiválásához futtassa a parancsot deactivate.

    Tudni fogja, hogy a virtuális környezet inaktiválva van, ha a virtuális környezet neve már nem jelenik meg zárójelben, csak a terminálüzenet előtt.

Ugorjon előre a Pythonhoz készült Databricks SDK használatának első lépéseihez.

Virtuális környezet létrehozása a Poetry használatával

  1. Telepítse a Poetryt, ha még nem tette meg.

  2. A terminálkészletből a Python-kódprojekt gyökérkönyvtárába futtassa az alábbi parancsot, amely arra utasítja poetry , hogy inicializálja a Python-kódprojektet a Poetryhez.

    poetry init
    
  3. A Versek számos kérést jelenít meg a befejezéshez. Ezen kérések egyike sem a PythonHoz készült Databricks SDK-ra vonatkozik. Ezekről a kérdésekről további információt az init című témakörben talál.

  4. A kérések elvégzése után a Poetry hozzáad egy pyproject.toml fájlt a Python-projekthez. A fájlról további információt a pyproject.toml The pyproject.toml fájlban talál.

  5. Ha a terminál továbbra is a Python-kódprojekt gyökérkönyvtárára van állítva, futtassa a következő parancsot. Ez a parancs arra utasítja poetry , hogy olvassa el a fájlt, telepítse és oldja fel a pyproject.toml függőségeket, hozzon létre egy poetry.lock fájlt a függőségek zárolásához, és végül hozzon létre egy virtuális környezetet.

    poetry install
    
  6. A terminálkészletből a Python-kódprojekt gyökérkönyvtárába futtassa a következő parancsot a virtuális környezet aktiválásához és a rendszerhéj megadásához poetry .

    poetry shell
    

    Tudni fogja, hogy a virtuális környezet aktiválva van, és a rendszerhéj akkor jelenik meg, ha a virtuális környezet neve zárójelben jelenik meg, éppen a terminálüzenet előtt.

    A virtuális környezet inaktiválásához és a rendszerhéjból való kilépéshez futtassa a parancsot exit.

    Tudni fogja, hogy kilépett a rendszerhéjból, amikor a virtuális környezet neve már nem jelenik meg zárójelben, csak a terminálüzenet előtt.

    A Verses virtuális környezetek létrehozásáról és kezeléséről további információt a Környezetek kezelése című témakörben talál.

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.

  1. 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áltania pip3 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.6telepítéséhez:

    Venv

    pip3 install databricks-sdk==0.1.6
    

    Költészet

    poetry add databricks-sdk==0.1.6
    

    Tipp.

    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
    
  2. 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)
    
  3. Futtassa a Python-kódfájlt, feltéve, hogy a következő nevű fájlt main.pyfuttatja: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()
    # ...
    
  • 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. A Pythonhoz készült Databricks SDK már telepítve van az összes Olyan Azure Databricks-fürtön, 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.

A Databricks Runtime egy adott verziójára alapértelmezés szerint telepített Databricks SDK for Python verziószámának megtekintéséhez tekintse meg az adott Databricks Runtime-verzióra vonatkozó Databricks-futtatókörnyezet kibocsátási megjegyzéseinek "Telepített Python-kódtárak" című szakaszát.

A Python 0.6.0-s és újabb verzióhoz készült Databricks SDK alapértelmezett Azure Databricks-jegyzetfüzet-hitelesítést használ. 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.

A Databricks Runtime 13.3 LTS és újabb verziók támogatják az Alapértelmezett Azure Databricks-notebookhitelesítést a Python 0.1.7-hez készült Databricks SDK-val vagy annál újabb telepítéssel. A Databricks Runtime 10.4 LTS és újabb verziók támogatják az Alapértelmezett Azure Databricks-notebookhitelesítést a Python 0.1.10-hez készült Databricks SDK-val vagy annál újabb telepítéssel. A Databricks azonban azt javasolja, hogy telepítse vagy frissítsen a Databricks SDK for Python 0.6.0-s vagy újabb verziójára az alapértelmezett Azure Databricks-notebook-hitelesítéssel való maximális kompatibilitás érdekében, függetlenül a Databricks Futtatókörnyezet verziójától.

Ha azure Databricks-fiókszintű API-kat szeretne meghívni, vagy ha az Alapértelmezett Azure Databricks-notebookhitelesítésen kívül más Azure Databricks-hitelesítést szeretne használni, telepítenie vagy frissítenie kell a PythonHoz készült Databricks SDK-t az Azure Databricks-fürtön:

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.

Az Azure Databricks-jegyzetfüzetek hitelesítése nem működik az Azure Databricks konfigurációs profiljaival.

1. lépés: A Pythonhoz készült Databricks SDK telepítése vagy frissítése

  1. 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
    
  2. 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()
    
  3. 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 a támogatott Azure Databricks-hitelesítési típusokat , és kattintson a megfelelő hivatkozásra a 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és dbutils.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és dbutils.widgets. Emellett a dbutils.notebook parancscsoport csak két parancsszintre korlátozódik, például dbutils.notebook.run vagy dbutils.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 munkafolyamatokhoz:

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.

Ha például a következő fájl neve helpers.py egy függvényt create_cluster tartalmaz, amely adatokat ad vissza az új fürtről:

# 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

És a függvényt meghívó create_cluster következő fájlra hivatkozvamain.py:

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