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.
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.
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()
Spark SQL permite ejecutar sentencias SQL directamente sobre DataFrames o tablas temporales. Esto facilita a los usuarios con experiencia en SQL realizar consultas complejas.
df.createOrReplaceTempView("mi_tabla")
# Ejecutar una consulta SQL
resultado = spark.sql("SELECT columna1, COUNT(*) FROM mi_tabla GROUP BY columna1")
resultado.show()
Filtrar datos:
SELECT * FROM mi_tabla WHERE columna1 = 'valor';
Agrupar y resumir:
SELECT columna2, AVG(columna3) FROM mi_tabla GROUP BY columna2;
Uniones:
SELECT a.*, b.columna4
FROM tabla_a a
INNER JOIN tabla_b b ON a.id = b.id;