Skip to content

Spark SQL

Spark permite trabajar con DataFrames o SQL. Ambos suelen compilar al mismo motor de ejecucion.

Crear vista temporal

python
df.createOrReplaceTempView("orders")

Consulta:

python
result = spark.sql("""
SELECT country, count(*) AS orders, sum(amount) AS total
FROM orders
GROUP BY country
""")

SQL vs DataFrame API

Usa SQL cuando:

  • El equipo domina SQL.
  • La transformacion es declarativa.
  • Quieres reutilizar consultas.

Usa DataFrame API cuando:

  • Necesitas composicion programatica.
  • Hay logica parametrizada.
  • Quieres integrar con funciones Python.

Funciones

sql
SELECT
  date_trunc('day', created_at) AS day,
  count(*) AS events
FROM events
GROUP BY date_trunc('day', created_at)

Catalogos y tablas

Segun entorno, Spark puede usar Hive Metastore, Unity Catalog u otros catalogos.

sql
SHOW DATABASES;
SHOW TABLES;

Buenas practicas

  • Evita SQL dinamico sin validar.
  • Usa vistas temporales para pasos claros.
  • Mantén consultas largas en archivos SQL versionados.
  • Revisa planes con EXPLAIN.
  • Documenta tablas y columnas de salida.