Como usar PySpark num Notebook do Microsoft Fabric
O Microsoft Fabric reúne engenharia de dados, ciência de dados e Power BI na mesma plataforma, e o Notebook é a ferramenta ideal para transformar dados com código. Saber usar PySpark num Notebook do Microsoft Fabric permite ler, transformar e guardar dados como tabela Delta no Lakehouse de forma reprodutível — e este guia mostra como fazer isso passo a passo, do zero. O PySpark é a API de Python para o Apache Spark, o motor distribuído que o Fabric usa para processar dados em escala.
Pré-requisitos
- Um workspace do Microsoft Fabric associado a uma capacidade ativa (serve a avaliação gratuita).
- Um Lakehouse já criado, onde tenhas permissão de escrita (função Contributor ou superior).
- Conhecimentos básicos de Python — não precisas de experiência prévia com Spark.
Passo 1: Criar o Notebook
No teu workspace, seleciona + Novo item e escolhe Notebook. Em alternativa, abre o teu Lakehouse e usa Abrir notebook > Novo notebook. O Notebook abre com uma célula vazia e usa PySpark como linguagem por omissão — é exatamente o que precisamos.
Não é preciso configurar nenhum cluster: o Fabric fornece um pool de Spark inicial que arranca em poucos segundos assim que executas a primeira célula.
Passo 2: Ligar o Lakehouse ao Notebook
Do lado esquerdo, no Explorer, seleciona Adicionar (ou Adicionar Lakehouse) e escolhe o teu Lakehouse. Ao ficar como Lakehouse predefinido, passas a poder usar caminhos relativos como Files/ e Tables/ e a gravar tabelas diretamente nesse Lakehouse. Este passo é essencial: sem um Lakehouse ligado, o comando que guarda a tabela mais à frente não sabe onde escrever.
Passo 3: Ler dados com PySpark
Para o exemplo ser reprodutível sem carregar ficheiros, vamos criar um pequeno DataFrame em memória. Cola este código na primeira célula e executa com Shift+Enter:
from pyspark.sql import Row
sales = [
Row(product="Keyboard", category="Accessories", quantity=3, price=25.0),
Row(product="Monitor", category="Screens", quantity=1, price=180.0),
Row(product="Mouse", category="Accessories", quantity=5, price=15.0),
Row(product="Laptop", category="Computers", quantity=2, price=950.0),
]
df = spark.createDataFrame(sales)
display(df)
A função display() mostra o DataFrame numa tabela interativa. Se preferires ler um ficheiro que já tenhas na secção Files do Lakehouse, o padrão é: spark.read.format("csv").option("header", "true").load("Files/vendas.csv").
Passo 4: Transformar os dados
Com o DataFrame carregado, vamos criar uma coluna calculada com o total por linha e ficar apenas com as vendas acima de 50. O PySpark usa a função col() para referir colunas:
from pyspark.sql.functions import col
df_total = df.withColumn("total", col("quantity") * col("price"))
df_filtered = df_total.filter(col("total") > 50)
display(df_filtered)
De seguida, agregamos o total por categoria — o tipo de resumo que costuma alimentar um relatório:
from pyspark.sql.functions import sum as sum_
sales_by_category = df_filtered.groupBy("category").agg(sum_("total").alias("total_by_category"))
display(sales_by_category)
Passo 5: Guardar como tabela Delta
No Fabric, o formato Delta é o formato de tabela por omissão. O Delta acrescenta um registo de transações por cima dos ficheiros Parquet, o que traz fiabilidade ACID e histórico de versões às tuas tabelas. Para guardar o resultado na secção Tables do Lakehouse, usa saveAsTable com o modo overwrite (substitui a tabela se já existir):
sales_by_category.write.format("delta").mode("overwrite").saveAsTable("sales_by_category")
Se preferires acrescentar linhas a uma tabela existente em vez de a substituir, troca overwrite por append.
Verificar o resultado
Atualiza o Explorer do Lakehouse (menu de três pontos > Atualizar) e confirma que a tabela sales_by_category aparece em Tables. Para confirmar os dados por código, consulta a tabela com Spark SQL:
result = spark.sql("SELECT * FROM sales_by_category ORDER BY total_by_category DESC")
display(result)
Deves ver uma linha por categoria com o respetivo total. A mesma tabela fica também disponível no SQL analytics endpoint do Lakehouse, pronta a ser usada num relatório de Power BI.
Conclusão
Em poucos passos criaste um Notebook, ligaste um Lakehouse e usaste PySpark para ler, transformar e guardar dados como tabela Delta — o alicerce de qualquer pipeline de engenharia de dados no Fabric. A partir daqui, experimenta ler dados reais da secção Files, agendar o Notebook num Data Pipeline ou aplicar a arquitetura Medallion (Bronze, Silver, Gold). Qual vai ser a primeira transformação que precisas de automatizar no teu projeto?