Erstellen und Verwalten von Clustern

Databricks mit dem Python-SDK

Avi Steinberg

Senior Software Engineer

Serverless vs. verwaltete Infrastruktur

Serverless

  • Läuft auf vollständig von Databricks verwalteter Infrastruktur
  • Fokus auf Code statt Infrastruktur
  • Compute bedarfsabhängig bezahlen

Managed

  • Mehr Kontrolle über die Konfiguration
  • Kostengünstiger für lang laufende Jobs oder vorhersagbare Workloads
Databricks mit dem Python-SDK

Einen Databricks Spark-Cluster erstellen

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
cluster = w.clusters.create(
    cluster_name="datacamp-cluster-name",

spark_version="latest",
autotermination_minutes=20,
num_workers=3, ).result()
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks mit dem Python-SDK

Cluster auflisten

from databricks.sdk import WorkspaceClient
# WorkspaceClient instanziieren
w = WorkspaceClient()

# ID jedes Clusters im Workspace ausgeben
clusters = w.clusters.list()
for cluster in clusters:
    print(f"ClusterId={cluster.cluster_id}")

Output:

ClusterId=0113-13328-woj98c32
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks mit dem Python-SDK

Cluster starten

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()
cluster_id=os.environ["DATABRICKS_CLUSTER_ID"]

# Cluster mit der in cluster_id gespeicherten ID starten
try:
  w.clusters.start(cluster_id=cluster_id).result()
except: 
  print(f"Cannot start cluster_id={cluster_id} because it is already running")
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks mit dem Python-SDK

Status eines Clusters prüfen

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()

# Clusterstatus ausgeben
cluster_info = w.clusters.get(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])
print(f"cluster state={cluster_info.state}")

Output:

cluster state=State.RUNNING
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks mit dem Python-SDK

Cluster löschen

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()
# Databricks-Cluster mit ID aus Umgebungsvariable löschen
w.clusters.delete(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])

cluster_info = w.clusters.get(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"]) print(f"cluster state={cluster_info.state}")
Output: 
cluster state=State.TERMINATED
Databricks mit dem Python-SDK

Lass uns üben!

Databricks mit dem Python-SDK

Preparing Video For Download...