Saltar al contenido

Desarrollo

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar 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.

17 min aprox.

Detalles

Notebooks, SQL, Python y PySpark en el workspace

Trabaja con notebooks y archivos como código mantenible, reproducible y parametrizable.

Reto observable

Dado un notebook con estado oculto, refactorízalo en código parametrizado y demuestra que una ejecución limpia reproduce la misma salida.

Al terminar podrás
  • Distinguir SQL, Python y PySpark por carga
  • Gestionar parámetros y dependencias
  • Evitar estado oculto en notebooks
Prerrequisitos
m02
Última revisión
25 ago 2026
Nivel
Associate
Ruta relacionada
core
Dominios blueprint
Workspace · PySpark
Estado
Revisión editorial interna
Fuentes principales
Databricks notebooks · Databricks Connect
Reportar un error
02
Implementación

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.

PySparkTransformación nativa equivalente a SQL
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.

¿SQL es siempre más rápido que PySpark DataFrames?

Profundiza

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.

Plan lógico

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.
Función nativa

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.
UDF Python

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.
Resumen

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

Vista de lectura · sin ejecución

notebook-best-practices

notebook-best-practices · commit b4f55c1

notebooks/covid_eda_modular.py

Módulo 03

Contenido del módulo