Share via


Databricks SDK für Python

In diesem Artikel erfahren Sie, wie Sie Vorgänge in Azure Databricks-Konten, -Arbeitsbereichen und zugehörigen Ressourcen mit dem Databricks SDK für Python automatisieren können. Dieser Artikel ergänzt die Databricks SDK für Python Dokumentation zu Read The Docs und die Codebeispiele im Databricks SDK für Python-Repository in GitHub.

Hinweis

Dieses Feature befindet sich in der Betaphase und kann in der Produktion verwendet werden.

Während des Betazeitraums empfiehlt Databricks, dass Sie eine Abhängigkeit von der spezifischen Nebenversion des Databricks SDK für Python anheften, von der Ihr Code abhängt. Beispielsweise können Sie Abhängigkeiten in Dateien wie requirements.txt für venv oder pyproject.toml und poetry.lock für Poetry anheften. Weitere Informationen zum Anheften von Abhängigkeiten finden Sie unter Virtuelle Umgebungen und Pakete für venv oder Installieren von Abhängigkeiten für Poetry.

Voraussetzungen

Sie können das Databricks SDK für Python in einem Azure Databricks-Notebook oder auf Ihrem lokalen Entwicklungscomputer verwenden.

Zur Verwendung des Databricks SDK für Python muss Ihr Entwicklungscomputer die folgenden Voraussetzungen erfüllen:

  • Die Azure Databricks-Authentifizierung ist konfiguriert.
  • Python 3.8 oder höher ist installiert. Für die Automatisierung von Azure Databricks-Computeressourcen empfiehlt Databricks, die Haupt- und Nebenversionen von Python zu installieren, die der auf Ihrer Azure Databricks-Zielcomputeressource installierten Version entsprechen. Die Beispiele in diesem Artikel basieren auf der Automatisierung von Clustern mit Databricks Runtime 13.3 LTS mit installiertem Python 3.10. Die richtige Databricks Runtime-Version Ihres Clusters finden Sie unter Versionshinweise zu Databricks Runtime-Versionen und -Kompatibilität.
  • Databricks empfiehlt, für jedes Python-Codeprojekt, das Sie mit dem Databricks SDK für Python verwenden, eine virtuelle Python-Umgebung zu erstellen und zu aktivieren. Mit virtuellen Python-Umgebungen können Sie sicherstellen, dass Ihr Codeprojekt kompatible Versionen von Python und Python-Paketen verwendet (in diesem Fall das Paket mit dem Databricks SDK für Python). In diesem Artikel wird erläutert, wie Sie venv oder Potetry für virtuelle Python-Umgebungen verwenden.

Erstellen einer virtuellen Python-Umgebung mit venv

  1. Führen Sie von Ihrem Terminal, das auf das Stammverzeichnis Ihres Python-Codeprojekts festgelegt ist, den folgenden Befehl aus. Dieser Befehl weist venv an, Python 3.10 für die virtuelle Umgebung zu verwenden, und erstellt dann die unterstützenden Dateien der virtuellen Umgebung in einem ausgeblendeten Verzeichnis namens .venv im Stammverzeichnis Ihres Python-Codeprojekts.

    # Linux and macOS
    python3.10 -m venv ./.venv
    
    # Windows
    python3.10 -m venv .\.venv
    
  2. Verwenden Sie venv, um die virtuelle Umgebung zu aktivieren. In der venv-Dokumentation finden Sie den richtigen Befehl für Ihr Betriebssystem und Ihren Terminaltyp. Beispiel: Unter macOS zsh:

    source ./.venv/bin/activate
    

    Sie wissen, dass Ihre virtuelle Umgebung aktiviert ist, wenn der Name der virtuellen Umgebung (z. B. .venv) direkt vor der Terminalaufforderung in Klammern angezeigt wird.

    Sie können die virtuelle Umgebung jederzeit deaktivieren, indem Sie den Befehl deactivate ausführen.

    Sie wissen, dass Ihre virtuelle Umgebung deaktiviert ist, wenn der Name der virtuellen Umgebung nicht mehr direkt vor der Terminalaufforderung in Klammern angezeigt wird.

Springen Sie zu Erste Schritte mit dem Databricks SDK für Python.

Erstellen einer virtuellen Umgebung mit Poetry

  1. Installieren Sie Poetry, wenn Sie dies noch nicht getan haben.

  2. Führen Sie in Ihrem Terminal, das auf das Stammverzeichnis Ihres vorhandenen Python-Codeprojekts festgelegt ist, den folgenden Befehl aus, um poetry anzuweisen, Ihr Python-Codeprojekt für Poetry zu initialisieren.

    poetry init
    
  3. Poetry zeigt mehrere Eingabeaufforderungen an. Keine dieser Eingabeaufforderungen ist spezifisch für das Databricks SDK für Python. Informationen zu diesen Eingabeaufforderungen finden Sie unter init.

  4. Nachdem Sie die Eingabeaufforderungen abgeschlossen haben, fügt Poetry Ihrem Python-Projekt eine Datei vom Typ pyproject.toml hinzu. Informationen zur Datei pyproject.toml finden Sie unter Datei „pyproject.toml“.

  5. Führen Sie in Ihrem Terminal, das noch immer auf das Stammverzeichnis Ihres Python-Codeprojekts festgelegt ist, den folgenden Befehl aus. Dieser Befehl weist poetry an, die pyproject.toml-Datei zu lesen, Abhängigkeiten zu installieren und aufzulösen, eine poetry.lock-Datei zu erstellen, um die Abhängigkeiten zu sperren und schließlich eine virtuelle Umgebung zu erstellen.

    poetry install
    
  6. Führen Sie in Ihrem Terminal, das auf das Stammverzeichnis Ihres Python-Codeprojekts festgelegt ist, den folgenden Befehl aus, um poetry anzuweisen, die virtuelle Umgebung zu aktivieren und die Shell aufzurufen.

    poetry shell
    

    Sie wissen, dass Ihre virtuelle Umgebung aktiviert ist und die Shell aufgerufen wurde, wenn der Name der virtuellen Umgebung direkt vor der Terminalaufforderung in Klammern angezeigt wird.

    Sie können die virtuelle Umgebung jederzeit deaktivieren und die Shell beenden, indem Sie den Befehl exit ausführen.

    Sie wissen, dass Sie die Shell beendet haben, wenn der Name der virtuellen Umgebung nicht mehr direkt vor der Terminalaufforderung in Klammern angezeigt wird.

    Weitere Informationen zum Erstellen und Verwalten von virtuellen Poetry-Umgebungen finden Sie unter Verwalten von Umgebungen.

Erste Schritte mit dem Databricks SDK für Python

In diesem Abschnitt wird beschrieben, wie Sie auf Ihrem lokalen Entwicklungscomputer mit der Verwendung des Databricks SDK für Python beginnen. Um das Databricks SDK für Python in einem Azure Databricks-Notebook zu verwenden, fahren Sie mit Verwenden des Databricks SDK für Python in einem Azure Databricks-Notebook fort.

  1. Installieren Sie auf Ihrem Entwicklungscomputer, auf dem die Azure Databricks-Authentifizierung bereits konfiguriert, Python bereits installiert und Ihre virtuelle Python-Umgebung bereits aktiviert ist, das databricks-sdk-Paket aus dem Python-Paketindex (PyPI) folgendermaßen:

    Venv

    Verwenden Sie pip, um das databricks-sdk-Paket zu installieren. (Bei einigen Systemen müssen Sie hier und im weiteren Verlauf möglicherweise pip3 durch pip ersetzen.)

    pip3 install databricks-sdk
    

    Poetry

    poetry add databricks-sdk
    

    Informationen zum Installieren einer bestimmten Version des databricks-sdk-Pakets, während sich das Databricks SDK für Python noch in der Betaversion befindet, finden Sie im Releaseverlauf des Pakets. Gehen Sie beispielsweise wie folgt vor, um Version 0.1.6 zu installieren:

    Venv

    pip3 install databricks-sdk==0.1.6
    

    Poetry

    poetry add databricks-sdk==0.1.6
    

    Tipp

    Führen Sie den folgenden Befehl aus, um ein Upgrade der vorhandenen Installation des Databricks SDK für Python auf die neueste Version durchzuführen:

    Venv

    pip3 install --upgrade databricks-sdk
    

    Poetry

    poetry add databricks-sdk@latest
    

    Führen Sie den folgenden Befehl aus, um die aktuelle Version und andere Details des Databricks SDK für Python anzuzeigen:

    Venv

    pip3 show databricks-sdk
    

    Poetry

    poetry show databricks-sdk
    
  2. Erstellen Sie in Ihrer virtuellen Python-Umgebung eine Python-Codedatei, die das Databricks SDK für Python importiert. Im folgenden Beispiel werden in der Datei main.py mit folgendem Inhalt einfach alle Cluster in Ihrem Azure Databricks-Arbeitsbereich aufgelistet:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    
    for c in w.clusters.list():
      print(c.cluster_name)
    
  3. Führen Sie Ihre Python-Codedatei aus, wobei Sie von einer Datei namens main.py ausgehen, indem Sie den Befehl python ausführen:

    Venv

    python3.10 main.py
    

    Poetry

    Wenn Sie sich in der Shell der virtuellen Umgebung befinden:

    python3.10 main.py
    

    Wenn Sie sich nicht in der Shell der virtuellen Umgebung befinden:

    poetry run python3.10 main.py
    

    Hinweis

    Wenn Sie keine Argumente im obigen w = WorkspaceClient()-Aufruf angeben, verwendet das Databricks SDK für Python den Standardprozess zur Durchführung der Azure Databricks-Authentifizierung. Informationen zum Überschreiben dieses Standardverhaltens finden Sie im folgenden Abschnitt zur Authentifizierung.

Authentifizieren des Databricks SDK für Python bei Ihrem Azure Databricks-Konto oder -Arbeitsbereich

In diesem Abschnitt wird beschrieben, wie Sie das Databricks SDK für Python von Ihrem lokalen Entwicklungscomputer auf Ihrem Azure Databricks-Konto oder -Arbeitsbereich authentifizieren. Um das Databricks SDK für Python in einem Azure Databricks-Notebook zu authentifizieren, fahren Sie mit Verwenden des Databricks SDK für Python in einem Azure Databricks-Notebook fort.

Das Databricks-SDK für Python implementiert den Standard für die einheitliche Databricks-Clientauthentifizierung, einen konsolidierten und konsistenten architektonischen und programmgesteuerten Ansatz für die Authentifizierung. Dieser Ansatz trägt dazu bei, die Einrichtung und Automatisierung der Authentifizierung mit Azure Databricks zentralisierter und vorhersagbarer zu gestalten. Er ermöglicht Ihnen, die Databricks-Authentifizierung einmal zu konfigurieren und diese Konfiguration dann für mehrere Databricks-Tools und -SDKs ohne weitere Änderungen an der Authentifizierungskonfiguration zu verwenden. Weitere Informationen, einschließlich umfassenderer Codebeispiele in Python, finden Sie unter Einheitliche Databricks-Clientauthentifizierung.

Hinweis

Das Databricks SDK für Python hat noch keine Authentifizierung mit von Azure verwalteten Identitäten implementiert.

Zu den verfügbaren Codierungsmustern zum Initialisieren der Databricks-Authentifizierung mit dem Databricks-SDK für Python gehören:

  • Verwenden Sie die Databricks-Standardauthentifizierung, indem Sie eine der folgenden Aktionen ausführen:

    • Erstellen oder identifizieren Sie ein benutzerdefiniertes Databricks-Konfigurationsprofil mit den erforderlichen Feldern für den Databricks-Zielauthentifizierungstyp. Legen Sie dann die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable auf den Namen des benutzerdefinierten Konfigurationsprofils fest.
    • Legen Sie die erforderlichen Umgebungsvariablen für den Databricks-Zielauthentifizierungstyp fest.

    Instanziieren Sie dann z. B. ein WorkspaceClient-Objekt mit Databricks-Standardauthentifizierung wie folgt:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    # ...
    
  • Das harte Codieren der erforderlichen Felder wird unterstützt, aber nicht empfohlen, da dadurch vertrauliche Informationen in Ihrem Code verfügbar gemacht werden könnten, z. B. persönliche Azure Databricks-Zugriffstoken. Im folgenden Beispiel werden Azure Databricks-Host- und Zugriffstokenwerte für die Databricks-Tokenauthentifizierung hart codiert:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(
      host  = 'https://...',
      token = '...'
    )
    # ...
    

Siehe auch Authentifizierung in der Dokumentation zu Databricks SDK für Python.

Verwenden des Databricks SDK für Python in einem Azure Databricks-Notebook

Sie können die Funktionalität des Databricks SDK für Python über ein Azure Databricks-Notebook aufrufen, das über einen angefügten Azure Databricks-Cluster mit installiertem Databricks SDK für Python verfügt. Das Databricks-SDK für Python ist auf allen Azure Databricks-Clustern bereits installiert, die Databricks Runtime 13.3 LTS oder höher verwenden. Für Azure Databricks-Cluster, die Databricks Runtime 12.2 LTS und darunter verwenden, müssen Sie zuerst das Databricks-SDK für Python installieren. Weitere Informationen finden Sie unter Schritt 1: Installieren oder Upgraden des Databricks SDK für Python.

Informationen zur Versionsnummer des Databricks SDK für Python, das standardmäßig für eine bestimmte Version von Databricks Runtime installiert ist, finden Sie im Abschnitt „Installierte Python-Bibliotheken“ in den Databricks Runtime-Versionshinweisen für diese Databricks Runtime-Version.

Das Databricks SDK für Python 0.6.0 und höher verwendet die standardmäßige Azure Databricks-Notebookauthentifizierung. Die standardmäßige Azure Databricks-Notebook-Authentifizierung basiert auf einem temporären persönlichen Azure Databricks-Zugriffstoken, das Azure Databricks automatisch im Hintergrund zur eigenen Verwendung generiert. Azure Databricks löscht dieses temporäre Token, wenn die Ausführung des Notebooks beendet wurde.

Wichtig

Die Standardauthentifizierung von Azure Databricks-Notebooks funktioniert nur auf dem Treiberknoten des Clusters und nicht auf einem der Worker- oder Executorknoten des Clusters.

Databricks Runtime 13.3 LTS und höher unterstützt die standardmäßige Azure Databricks-Notebookauthentifizierung mit installiertem Databricks-SDK für Python 0.1.7 oder höher. Databricks Runtime 10.4 LTS und höher unterstützt die standardmäßige Azure Databricks-Notebookauthentifizierung mit installiertem Databricks SDK für Python 0.1.10 oder höher. Databricks empfiehlt jedoch, das Databricks SDK für Python 0.6.0 oder höher für die maximale Kompatibilität mit der standardmäßigen Azure Databricks-Notebookauthentifizierung zu installieren oder upzugraden, unabhängig von der Databricks Runtime-Version.

Sie müssen das Databricks SDK für Python im Azure Databricks-Cluster wie folgt installieren oder upgraden, wenn Sie Azure Databricks-APIs auf Kontoebene aufrufen möchten oder wenn Sie einen anderen Authentifizierungstyp für Azure Databricks als die standardmäßige Azure Databricks-Notebookauthentifizierung verwenden möchten:

Authentication type Databricks SDK für Python-Versionen
OAuth-M2M-Authentifizierung 0.18.0 und höher
OAuth U2M-Authentifizierung (User-to-Machine) 0.19.0 und höher
Microsoft Entra ID-Dienstprinzipalauthentifizierung Alle Versionen
Azure CLI-Authentifizierung Alle Versionen
Authentifizierung mit persönlichen Databricks-Zugriffstoken Alle Versionen

Die Authentifizierung mit von Azure verwalteten Identitäten wird noch nicht unterstützt.

Die Azure Databricks-Notebook-Authentifizierung funktioniert nicht mit Azure Databricks-Konfigurationsprofilen.

Schritt 1: Installieren oder Upgraden des Databricks SDK für Python

  1. Azure Databricks Python-Notebooks können das Databricks SDK für Python wie jede andere Python-Bibliothek verwenden. Um die Databricks SDK für Python-Bibliothek im angefügten Azure Databricks-Cluster zu installieren oder upzugraden, führen Sie den Magic-Befehl %pip aus einer Notebookzelle wie folgt aus:

    %pip install databricks-sdk --upgrade
    
  2. Nachdem Sie den Magic-Befehl %pip ausgeführt haben, müssen Sie Python neu starten, um die installierte oder upgegradete Bibliothek für das Notebook verfügbar zu machen. Führen Sie dazu den folgenden Befehl in einer Notebookzelle unmittelbar hinter der Zelle mit dem %pip-Magic-Befehl aus:

    dbutils.library.restartPython()
    
  3. Um die installierte Version des Databricks SDK für Python anzuzeigen, führen Sie den folgenden Befehl aus einer Notebookzelle aus:

    %pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
    

Schritt 2: Ausführen des Codes

Erstellen Sie in Ihren Notebookzellen Python-Code, der das Databricks SDK für Python importiert und dann aufruft. Im folgenden Beispiel wird die standardmäßige Azure Databricks-Notebookauthentifizierung verwendet, um alle Cluster in Ihrem Azure Databricks-Arbeitsbereich auflisten zu können:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

for c in w.clusters.list():
  print(c.cluster_name)

Wenn Sie diese Zelle ausführen, wird eine Liste der Namen aller verfügbaren Cluster in Ihrem Azure Databricks-Arbeitsbereich angezeigt.

Informationen zur Verwendung eines anderen Azure Databricks-Authentifizierungstyps finden Sie unter Unterstützte Azure Databricks-Authentifizierungstypen. Klicken Sie auf den entsprechenden Link, um weitere technische Details anzuzeigen.

Verwenden von Databricks Utilities

Sie können die Referenz zu Databricks-Hilfsprogrammen (dbutils) über das Databricks SDK für Python, das auf Ihrem lokalen Entwicklungscomputer ausgeführt wird, oder in einem Azure Databricks-Notebook aufrufen.

  • Von Ihrem lokalen Entwicklungscomputer aus hat Databricks Utilities nur Zugriff auf die Befehlsgruppen dbutils.fs, dbutils.secrets, dbutils.widgets und dbutils.jobs.
  • Von einem Azure Databricks-Notebook aus, das an einen Azure Databricks-Cluster angefügt ist, hat Databricks Utilities Zugriff auf alle verfügbaren Databricks Utilities-Befehlsgruppen, nicht nur dbutils.fs, dbutils.secrets und dbutils.widgets. Darüber hinaus ist die dbutils.notebook-Befehlsgruppe auf zwei Befehlsebenen beschränkt, z. B dbutils.notebook.run oder dbutils.notebook.exit.

Verwenden Sie dbutils in WorkspaceClient, um Databricks Utilities entweder von Ihrem lokalen Entwicklungscomputer oder einem Azure Databricks-Notebook aufzurufen. In diesem Codebeispiel wird die standardmäßige Azure Databricks-Notebookauthentifizierung verwendet, um dbutils innerhalb von WorkspaceClient aufzurufen, um die Pfade aller Objekte im DBFS-Stamm des Arbeitsbereichs auflisten zu können.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
d = w.dbutils.fs.ls('/')

for f in d:
  print(f.path)

Alternativ können Sie dbutils direkt aufrufen. Sie können jedoch nur die standardmäßige Azure Databricks-Notebookauthentifizierung verwenden. Dieses Codebeispiel ruft dbutils direkt auf, um alle Objekte im DBFS-Stamm des Arbeitsbereichs aufzulisten.

from databricks.sdk.runtime import *

d = dbutils.fs.ls('/')

for f in d:
  print(f.path)

Sie können dbutils nicht allein oder innerhalb von WorkspaceClient verwenden, um auf Unity Catalog-Volumes zuzugreifen. Verwenden Sie stattdessen files in WorkspaceClient. In diesem Codebeispiel wird files innerhalb von WorkspaceClient aufgerufen, um den Inhalt der angegebenen Datei im angegebenen Volume auszugeben.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

resp = w.files.download('/Volumes/main/default/my-volume/sales.csv')
print(str(resp.contents.read(), encoding='utf-8'))

Weitere Informationen finden Sie unter Interaction with dbutils (Interaktion mit dbutils).

Codebeispiele

Die folgenden Codebeispiele veranschaulichen die Verwendung des Databricks SDK für Python zum Erstellen und Löschen von Clustern, Ausführen von Aufträgen und Auflisten von Gruppen auf Kontoebene. Diese Codebeispiele verwenden die standardmäßige Azure Databricks-Notebookauthentifizierung. Ausführliche Informationen zur standardmäßigen Azure Databricks-Notebookauthentifizierung finden Sie unter Verwenden des Databricks SDK für Python in einem Azure Databricks-Notebook. Ausführliche Informationen zur Standardauthentifizierung außerhalb von Notebooks finden Sie unter Authentifizieren des Databricks SDK für Python mit Ihrem Azure Databricks-Konto oder -Arbeitsbereich.

Weitere Beispiele finden Sie in den Beispielen im Databricks SDK für Python-Repository auf GitHub. Weitere Informationen:

Erstellen eines Clusters

In diesem Codebeispiel wird ein Cluster mit der angegebenen Databricks Runtime-Version und dem angegebenen Clusterknotentyp erstellt. Dieser Cluster umfasst einen Worker, und der Cluster wird nach 15 Minuten Leerlauf automatisch beendet.

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")

Dauerhaftes Löschen eines Clusters

In diesem Codebeispiel wird der Cluster mit der angegebenen Cluster-ID dauerhaft aus dem Arbeitsbereich gelöscht.

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)

Erstellen eines Auftrags

In diesem Codebeispiel wird ein Azure Databricks-Auftrag erstellt, der das angegebene Notebook auf dem angegebenen Cluster ausführt. Bei Ausführung des Codes werden der Pfad des vorhandenen Notebooks, die ID des vorhandenen Clusters und die zugehörigen Auftragseinstellungen vom Benutzer am Terminal abgerufen.

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")

Erstellen eines Auftrags, der serverloses Computing verwendet

Wichtig

Serverloses Computing für Workflows befindet sich in der Public Preview. Informationen zur Berechtigung und Aktivierung finden Sie unter Aktivieren der Public Preview von serverlosem Computing.

Im folgenden Beispiel wird ein Auftrag erstellt, der serverloses Computing for Workflows verwendet:

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",
   )
  ]
)

Auflisten von Gruppen auf Kontoebene

In diesem Codebeispiel werden die Anzeigenamen für alle verfügbaren Gruppen im Azure Databricks-Konto aufgelistet.

from databricks.sdk import AccountClient

a = AccountClient()

for g in a.groups.list():
  print(g.display_name)

Testen

Verwenden Sie Python-Testframeworks wie pytest, um Ihren Code zu testen. Um Ihren Code unter simulierten Bedingungen zu testen, ohne Azure Databricks-REST-API-Endpunkte aufzurufen oder den Status Ihrer Azure Databricks-Konten oder -Arbeitsbereiche zu ändern, können Sie Python-Modellbibliotheken wie unittest.mock verwenden.

Angenommen, die folgende Datei mit dem Namen helpers.py enthält eine create_cluster-Funktion, die Informationen über den neuen Cluster zurückgibt:

# 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

Und die folgende Datei mit dem Namen main.py, die die create_cluster Funktion aufruft:

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

Die folgende Datei mit dem Namen test_helpers.py testet, ob die create_cluster Funktion die erwartete Antwort zurückgibt. Anstatt einen Cluster im Zielarbeitsbereich zu erstellen, simuliert dieser Test ein WorkspaceClient Objekt, definiert die Einstellungen des Pseudoobjekts und übergibt dann das Pseudoobjekt an die create_cluster Funktion. Der Test überprüft dann, ob die Funktion die erwartete ID des neuen simulierten Clusters zurückgibt.

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

Führen Sie zum Durchführen dieses Tests den Befehl pytest aus dem Stamm des Codeprojekts aus, der ähnliche Testergebnisse wie die Folgenden erzeugen sollte:

$ 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 ==========================

Zusätzliche Ressourcen

Weitere Informationen finden Sie unter: