Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.
Lección 2 de 5
SQL frente a PySpark
SQL expresa transformaciones relacionales con claridad; PySpark facilita composición, control y pruebas en proyectos Python.
- Duración
- 17 min aprox.
- Objetivo
- SQL expresa transformaciones relacionales con claridad; PySpark facilita composición, control y pruebas en proyectos Python.
- Siguiente paso
- Continuar con la siguiente lección
Ver detalles del módulo
Notebooks, SQL, Python y PySpark en el workspace
Trabaja con notebooks y archivos como código mantenible, reproducible y parametrizable.
- Distinguir SQL, Python y PySpark por carga
- Gestionar parámetros y dependencias
- Evitar estado oculto en notebooks
02ImplementaciónSQL frente a PySpark
SQL expresa transformaciones relacionales con claridad; PySpark facilita composición, control y pruebas en proyectos Python.
+
SQL frente a PySpark
SQL expresa transformaciones relacionales con claridad; PySpark facilita composición, control y pruebas en proyectos Python.
SQL resulta conciso para selección, agregación, joins y DDL/DML. PySpark usa el mismo optimizador para operaciones DataFrame y permite construir funciones, iterar sobre metadatos o integrar librerías Python.
La elección no debe basarse en una supuesta diferencia universal de rendimiento: muchas expresiones convergen en planes equivalentes. Conviene priorizar mantenibilidad, conocimientos del equipo y necesidad de abstracción, usando funciones nativas antes que UDF Python.
Modelo mental
SQL y PySpark expresan planes sobre el mismo motor, pero ofrecen distintas herramientas cognitivas. SQL describe relaciones y resultados mediante álgebra declarativa; suele ser la forma más legible para filtros, joins, agregaciones y modelos que revisan perfiles diversos. PySpark compone la API DataFrame desde Python y facilita abstracciones, control, reutilización y pruebas. No hay premio por traducir cada consulta de una forma a otra. Primero se representa la transformación con funciones nativas que Catalyst pueda analizar; después se elige el lenguaje que hace visible la intención y reduce complejidad accidental. Una UDF Python es una frontera de optimización y debe justificarse, no un atajo habitual.
Representación declarativa de operaciones sobre relaciones antes de escoger algoritmos físicos.
Permite entender que SQL y DataFrames pueden converger en la misma ejecución.Expresión conocida por Spark y visible para análisis, optimización y generación de código.
Suele conservar mejor rendimiento y diagnósticos que una UDF opaca.Función definida por el usuario ejecutada en la frontera entre JVM y proceso Python.
Puede ser necesaria, pero introduce costes y limita optimizaciones si reemplaza funciones incorporadas.from pyspark.sql import functions as F
daily = (orders
.filter(F.col("status") == "paid")
.groupBy("order_date")
.agg(F.sum("amount").alias("revenue")))Compara daily.explain('formatted') con la consulta SQL equivalente.
Puntos clave
- SQL y DataFrame API comparten optimizador
- PySpark facilita modularidad Python
- Las funciones nativas suelen superar a UDF Python
Evita
- Convertir a pandas para una transformación distribuida
- Crear una UDF para una función ya disponible en Spark SQL
Recuerdo activo