Creazione e gestione dei cluster

Databricks con il Python SDK

Avi Steinberg

Senior Software Engineer

Infrastruttura serverless vs gestita

Serverless

  • Eseguito su infrastruttura completamente gestita da Databricks
  • Concentrati sul codice invece che sull'infrastruttura
  • Paghi il compute on-demand

Gestita

  • Più controllo sulla configurazione
  • Più conveniente per job lunghi o carichi predittivi
Databricks con il Python SDK

Crea un cluster Spark su Databricks

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 con il Python SDK

Elenca i cluster

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

# Stampa l'ID di ogni cluster nello workspace
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 con il Python SDK

Avvia un cluster

from databricks.sdk import WorkspaceClient
import os

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

# Avvia il cluster con l'ID salvato in cluster_id
try:
  w.clusters.start(cluster_id=cluster_id).result()
except: 
  print(f"Impossibile avviare cluster_id={cluster_id} perché è già in esecuzione")
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks con il Python SDK

Verifica lo stato di un cluster

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()

# Stampa lo stato del cluster
cluster_info = w.clusters.get(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])
print(f"stato cluster={cluster_info.state}")

Output:

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

Elimina un cluster

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()
# Elimina il cluster Databricks con ID salvato in una variabile d'ambiente
w.clusters.delete(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])

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

Ayo berlatih!

Databricks con il Python SDK

Preparing Video For Download...