En esta lección aprenderemos cómo integrar distintas tecnologías de Big Data (Hadoop, Spark y NoSQL) en un mismo ecosistema, configurando un entorno de trabajo eficiente y escalable.
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("IntegracionHDFS") \
.config("spark.hadoop.fs.defaultFS", "hdfs://localhost:9000") \
.getOrCreate()
# Leer archivo desde HDFS
df = spark.read.csv("hdfs:///data/ventas.csv", header=True)
df.show(5)
# Conector de Spark con MongoDB
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.printSchema()
# Lectura en formato Parquet
df = spark.read.parquet("/datalake/ventas.parquet")
df.createOrReplaceTempView("ventas")
spark.sql("SELECT pais, SUM(monto) FROM ventas GROUP BY pais").show()
Para coordinar tareas en un entorno Big Data se usan orquestadores:
# Ejemplo de DAG en Airflow
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
dag = DAG("ejemplo_bigdata", start_date=datetime(2025,1,1), schedule_interval="@daily")
step1 = BashOperator(task_id="cargar_datos", bash_command="spark-submit job.py", dag=dag)
Pipeline típico:
La integración de Hadoop, Spark y NoSQL permite crear ecosistemas de Big Data robustos y escalables. Una correcta configuración y orquestación asegura eficiencia, resiliencia y valor en la explotación de datos.