MISIÓN 2 · Lección 7

Integración Spark + NoSQL (MongoDB y Cassandra)

En esta lección aprenderemos a integrar Apache Spark con bases de datos NoSQL como MongoDB y Cassandra, para aprovechar el almacenamiento flexible y el procesamiento distribuido.

Integración con MongoDB

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("SparkMongo") \
    .config("spark.mongodb.input.uri", "mongodb://localhost:27017/tienda.ventas") \
    .config("spark.mongodb.output.uri", "mongodb://localhost:27017/tienda.resultados") \
    .getOrCreate()

# Leer desde MongoDB
df = spark.read.format("mongo").load()
df.show(5)

Escritura en MongoDB

# Procesamiento en Spark
ventas_pais = df.groupBy("pais").count()

# Guardar resultados en MongoDB
ventas_pais.write.format("mongo").mode("overwrite").save()

Integración con Cassandra

spark = SparkSession.builder \
    .appName("SparkCassandra") \
    .config("spark.cassandra.connection.host", "127.0.0.1") \
    .getOrCreate()

# Leer desde Cassandra
df = spark.read.format("org.apache.spark.sql.cassandra") \
    .options(table="ventas", keyspace="tienda") \
    .load()

df.show(5)

Escritura en Cassandra

# Procesamiento de datos
resumen = df.groupBy("producto").sum("precio")

# Guardar resultados en Cassandra
resumen.write.format("org.apache.spark.sql.cassandra") \
    .options(table="ventas_resumen", keyspace="tienda") \
    .mode("append") \
    .save()

Comparación: MongoDB vs Cassandra

Aplicaciones prácticas

Buenas prácticas

Ejemplo de pipeline híbrido

  1. Datos en crudo llegan a HDFS.
  2. Spark procesa y limpia los datos.
  3. Resultados agregados se guardan en Cassandra para dashboards.
  4. Datos enriquecidos se almacenan en MongoDB para consultas flexibles.

Reflexión final

La integración de Spark con NoSQL combina lo mejor de dos mundos: procesamiento distribuido en memoria con almacenamiento flexible y escalable. Esto habilita soluciones robustas para analítica avanzada y aplicaciones en tiempo real.