🧱 FASE 2 – Comprendiendo los DataFrames en Spark (vía Databricks)
- Brayan Neciosup
- 14 jul
- 2 Min. de lectura
Actualizado: 23 jul
🔍 ¿Qué son los DataFrames en Apache Spark?
Los DataFrames son una abstracción de alto nivel sobre los RDDs. A diferencia de los RDDs (que son colecciones distribuidas sin estructura), los DataFrames sí cuentan con nombres de columnas y tipos definidos, lo que los convierte en una estructura similar a una tabla relacional o un DataFrame de Pandas.
Son ideales para trabajar con datos estructurados y semi-estructurados a gran escala, y su diseño está pensado para optimizar el rendimiento del procesamiento distribuido.
📈 Ventajas técnicas de los DataFrames:
✅ Basados en RDDs, pero con estructura tabular (filas y columnas).
✅ Catalyst Optimizer: Planifica las consultas para que sean lo más eficientes posibles.
✅ Tungsten Engine: Optimiza la ejecución a nivel de CPU y memoria.
✅ Evaluación perezosa, como en RDDs: solo se ejecuta cuando se llama una acción.
✅ API intuitiva y expresiva, que soporta funciones como select(), filter(), withColumn(), etc.
✅ Interoperabilidad con SQL mediante spark.sql() o métodos tipo SQL.
✅ Lectura desde múltiples fuentes: CSV, JSON, Parquet, Hive, JDBC, RDDs, etc.
🔧 ¿Cómo trabajar con funciones en DataFrames?
Spark permite dos formas para trabajar con funciones del módulo SQL:
# Opción 1: importar todo
from pyspark.sql import functions as F
# Opción 2: importar funciones específicas
from pyspark.sql.functions import col, when, count, lit
💡La segunda opción es más óptima en notebooks con muchos módulos, ya que ahorra memoria.
⚔️ Diferencias clave entre RDDs y DataFrames:
Característica | RDD | DataFrame |
Nivel de abstracción | Bajo | Alto (similar a SQL/Pandas) |
Estructura | Lista distribuida sin columnas | Tabla estructurada (filas y columnas) |
Optimización | Manual | Automática con Catalyst y Tungsten |
Tipado | Sin esquema | Con esquema definido |
Velocidad | Menor rendimiento | Mayor rendimiento |
Lenguajes soportados | Scala, Java, Python | Scala, Java, Python, R |
Uso recomendado | Casos complejos sin estructura definida | Procesamiento estructurado y análisis masivo |
💻 Nota sobre Databricks (2025):
En la edición gratuita actual de Databricks (junio 2025):
Los DataFrames siguen siendo el estándar principal de procesamiento distribuido.
Los notebooks traen spark preinstanciado con SparkSession.
Algunas funciones de Hive o SQLContext están limitadas, pero puedes usar spark.read, spark.sql() y DataFrame API sin problemas.
Comments