Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 03 · Lección

SQL frente a PySpark

Contenido abierto

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.

Al terminar podrás
  • Distinguir SQL, Python y PySpark por carga
  • Gestionar parámetros y dependencias
  • Evitar estado oculto en notebooks
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 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.

Mostrar prerrequisitos
Dificultad
Associate
Prerrequisitos
m02
Reportar un error en esta lección

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.

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

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

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

Borrador privado · solo en este navegador
5 lecciones pendientes

Vista de lectura · sin ejecución

notebook-best-practices

notebook-best-practices · commit b4f55c1

notebooks/covid_eda_modular.py