Spark Pools no Synapse: processamento distribuído integrado
João Barros
08 de December de 2025
1 min de leitura
Os Apache Spark Pools no Azure Synapse Analytics oferecem processamento distribuído integrado com o restante ecossistema Synapse — ADLS, SQL Pools, Synapse Link — sem a necessidade de um workspace Databricks separado.
Criar 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 nós)
Auto-pause: 15 minutes idle
Apache Spark version: 3.4
Notebook PySpark básico
%%pyspark
# Ler do ADLS (autenticação via Managed Identity do Synapse)
df = spark.read.format("parquet").load("abfss://silver@stadatalake.dfs.core.windows.net/vendas/")
# Transformar
from pyspark.sql.functions import col, year, month, sum as _sum
df_gold = (df
.filter(col("estado") == "Completo")
.groupBy(year("data_venda").alias("ano"), "pais")
.agg(_sum("receita").alias("receita_total"))
.orderBy("ano", col("receita_total").desc()))
# Gravar como Delta no Gold
df_gold.write.format("delta").mode("overwrite").saveAsTable("gold.vendas_anuais_pais")
Ler/escrever em Dedicated SQL Pool
%%pyspark
# Ler do Dedicated SQL Pool (via JDBC interno Synapse)
df_dim = spark.read.synapsesql("SynapseDW.dbo.DimProduto")
# Escrever para Dedicated SQL Pool
df_gold.write.synapsesql("SynapseDW.gold.FactVendasAnuais", mode="overwrite")
Variáveis de pipeline no notebook
%%pyspark
# Receber parâmetros do pipeline Synapse
import mssparkutils
data_ref = mssparkutils.runtime.context.get("notebookParam_data") or "2024-01-01"
print(f"Processando a partir de: {data_ref}")
Conclusão
Os Spark Pools no Synapse são a escolha natural para equipas que já usam Synapse Analytics e querem processamento Spark sem gerir um workspace Databricks separado. A integração nativa com ADLS, SQL Pools e pipelines Synapse simplifica significativamente a arquitectura.