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.
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)
# Procesamiento en Spark
ventas_pais = df.groupBy("pais").count()
# Guardar resultados en MongoDB
ventas_pais.write.format("mongo").mode("overwrite").save()
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)
# 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()
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.