Spark Pools en Synapse: procesamiento distribuido integrado
João Barros
08 de December de 2025
1 min de lectura
Los Apache Spark Pools en Azure Synapse Analytics ofrecen procesamiento distribuido integrado con el resto del ecosistema Synapse — ADLS, SQL Pools, Synapse Link — sin necesidad de un workspace Databricks separado.
Crear un Spark Pool
// Synapse Studio → Manage → Apache Spark Pools → New
Name: sparkpool-medium
Node size: Medium (8 vCores, 56 GB RAM)
Autoscale: Enabled (min 3, max 10 nodos)
Auto-pause: 15 minutes idle
Apache Spark version: 3.4
Notebook PySpark básico
%%pyspark
# Leer de ADLS (autenticación vía la Managed Identity de Synapse)
df = spark.read.format("parquet").load("abfss://silver@stadatalake.dfs.core.windows.net/ventas/")
# Transformar
from pyspark.sql.functions import col, year, month, sum as _sum
df_gold = (df
.filter(col("estado") == "Completo")
.groupBy(year("fecha_venta").alias("anio"), "pais")
.agg(_sum("ingresos").alias("ingresos_total"))
.orderBy("anio", col("ingresos_total").desc()))
# Guardar como Delta en Gold
df_gold.write.format("delta").mode("overwrite").saveAsTable("gold.ventas_anuales_pais")
Leer/escribir en un Dedicated SQL Pool
%%pyspark
# Leer del Dedicated SQL Pool (vía JDBC interno de Synapse)
df_dim = spark.read.synapsesql("SynapseDW.dbo.DimProducto")
# Escribir en el Dedicated SQL Pool
df_gold.write.synapsesql("SynapseDW.gold.FactVentasAnuales", mode="overwrite")
Variables de pipeline en el notebook
%%pyspark
# Recibir parámetros del pipeline Synapse
import mssparkutils
fecha_ref = mssparkutils.runtime.context.get("notebookParam_fecha") or "2024-01-01"
print(f"Procesando desde: {fecha_ref}")
Conclusión
Los Spark Pools en Synapse son la elección natural para equipos que ya usan Synapse Analytics y quieren procesamiento Spark sin gestionar un workspace Databricks separado. La integración nativa con ADLS, SQL Pools y pipelines Synapse simplifica significativamente la arquitectura.