Apache Spark proporciona potentes herramientas para trabajar con datos estructurados mediante DataFrames y Spark SQL. Estos permiten realizar transformaciones complejas y ejecutar consultas SQL de manera eficiente en entornos distribuidos.


Introducción a DataFrames

Un DataFrame es una colección de datos organizados en columnas con nombres. Se asemeja a una tabla en una base de datos o a un DataFrame de pandas en Python. Los DataFrames son la API principal para trabajar con datos estructurados en Spark.

Características principales:

Crear un DataFrame

from pyspark.sql import SparkSession

# Crear una sesión de Spark
spark = SparkSession.builder.appName("EjemploDataFrame").getOrCreate()

# Crear un DataFrame desde un archivo CSV
df = spark.read.format("csv").option("header", "true").load("/ruta/archivo.csv")

# Mostrar los primeros registros
df.show()


Consultas SQL con Spark SQL

Spark SQL permite ejecutar sentencias SQL directamente sobre DataFrames o tablas temporales. Esto facilita a los usuarios con experiencia en SQL realizar consultas complejas.

Registrar una tabla temporal

df.createOrReplaceTempView("mi_tabla")

# Ejecutar una consulta SQL
resultado = spark.sql("SELECT columna1, COUNT(*) FROM mi_tabla GROUP BY columna1")
resultado.show()

Consultas comunes

  1. Filtrar datos:

    SELECT * FROM mi_tabla WHERE columna1 = 'valor';
    
    
  2. Agrupar y resumir:

    SELECT columna2, AVG(columna3) FROM mi_tabla GROUP BY columna2;
    
    
  3. Uniones:

    SELECT a.*, b.columna4
    FROM tabla_a a
    INNER JOIN tabla_b b ON a.id = b.id;