Databricks
Esta guía te muestra cómo simular un entorno Databricks localmente usando Docker, MinIO como almacenamiento compatible con S3 y PostgreSQL como Hive Metastore persistente. Este lab demuestra cómo desarrollar y probar ETLs con Spark y Delta Lake localmente usando Databricks Runtime 15.4 LTS (Spark 3.5.0).
Prerrequisitos
Sección titulada «Prerrequisitos»- Docker instalado y en ejecución.
- Dev Containers extension instalada (opcional).
Cómo ejecutar
Sección titulada «Cómo ejecutar»-
Configurar el entorno:
Abre VS Code en la carpeta del proyecto y ejecuta este comando en la Paleta de Comandos:
Ventana de terminal > Dev Containers: Reopen in Container- Inicia la infraestructura: Lanza todos los servicios necesarios (Spark, MinIO, PostgreSQL).
Ventana de terminal docker compose up -d - Ejecuta el script de setup dentro del contenedor Spark para instalar herramientas y dependencias.
Ventana de terminal docker compose exec spark bash scripts/setup.sh
- Inicia la infraestructura: Lanza todos los servicios necesarios (Spark, MinIO, PostgreSQL).
-
Ejecutar el ejemplo:
Ventana de terminal python main.pyEjecuta el script dentro del contenedor Spark:
Ventana de terminal docker compose exec spark .venv/bin/python main.py
Cómo depurar
Sección titulada «Cómo depurar»- Script de Python (main.py):
- Abre
main.pyy coloca puntos de interrupción. - Ejecuta la configuración Python: Main desde la pestaña Run and Debug.
- Abre
- Notebook interactivo:
- Abre
src/notebooks/analysis.ipynby depura las celdas con el depurador de Jupyter.
- Abre
Cómo testear
Sección titulada «Cómo testear»- All tests: Ejecuta el script automatizado:
scripts/run_tests.sh - Individually: Usa la pestaña Testing de VS Code para ejecutar o depurar tests concretos.
Validar resultados
Sección titulada «Validar resultados»Mientras se ejecuta un job, Abre la Spark UI:
http://localhost:4040Navega por los ficheros Delta escritos en el bucket. Inicia sesión con MINIO_ROOT_USER / MINIO_ROOT_PASSWORD:
http://localhost:9001Limpieza
Sección titulada «Limpieza»docker compose down -vSolución de problemas
Sección titulada «Solución de problemas»| Problema | Solución |
|---|---|
| Conexión rechazada | Asegúrate de que todos los servicios están en ejecución: docker compose ps |
| La tabla ya existe | Elimina la tabla con spark.sql("DROP TABLE IF EXISTS sales.products_silver") o ejecuta Limpieza para reiniciar los volúmenes. |