Creación y gestión de clústeres

Databricks con el SDK de Python

Avi Steinberg

Senior Software Engineer

Infraestructura serverless vs. gestionada

Serverless

  • Se ejecuta en infraestructura totalmente gestionada por Databricks
  • Enfócate en el código, no en la infraestructura
  • Paga por cómputo bajo demanda

Gestionada

  • Más control sobre la configuración
  • Más rentable para trabajos largos o cargas predictivas
Databricks con el SDK de Python

Crear un clúster de Spark en 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 el SDK de Python

Listar clústeres

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

# Imprime el id de cada clúster del espacio de trabajo
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 el SDK de Python

Iniciar un clúster

from databricks.sdk import WorkspaceClient
import os

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

# Inicia el clúster con el id guardado en cluster_id
try:
  w.clusters.start(cluster_id=cluster_id).result()
except: 
  print(f"No se puede iniciar cluster_id={cluster_id} porque ya está en ejecución")
1 https://databricks-sdk-py.readthedocs.io/en/latest/workspace/compute/clusters.html
Databricks con el SDK de Python

Comprobar el estado de un clúster

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()

# Imprime el estado del clúster
cluster_info = w.clusters.get(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])
print(f"estado del clúster={cluster_info.state}")

Output:

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

Eliminar un clúster

from databricks.sdk import WorkspaceClient
import os

w = WorkspaceClient()
# Elimina el clúster de Databricks cuyo id está en una variable de entorno
w.clusters.delete(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"])

cluster_info = w.clusters.get(cluster_id=os.environ["DATABRICKS_CLUSTER_ID"]) print(f"estado del clúster={cluster_info.state}")
Output: 
estado del clúster=State.TERMINATED
Databricks con el SDK de Python

¡Vamos a practicar!

Databricks con el SDK de Python

Preparing Video For Download...