Partilhar via


Como ler e gravar dados com Pandas no Microsoft Fabric

Os notebooks Microsoft Fabric suportam interação perfeita com dados Lakehouse usando Pandas, a biblioteca Python mais popular para exploração e processamento de dados. Dentro de um bloco de anotações, você pode ler e gravar dados rapidamente em seus recursos do Lakehouse em vários formatos de arquivo. Este guia fornece exemplos de código para ajudá-lo a começar a usar seu próprio bloco de anotações.

Pré-requisitos

  • Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Altera para o Fabric usando o alternador de experiência no canto inferior esquerdo da sua página inicial.

    Captura de ecrã que mostra a seleção de Fabric no menu do comutador de experiências.

Carregar dados do Lakehouse em um bloco de anotações

Nota

Você precisa de alguns dados em sua Lakehouse para seguir as etapas nesta seção. Se você não tiver nenhum dado, siga as etapas em Baixar conjunto de dados e faça o upload para lakehouse para adicionar o arquivo churn.csv ao seu Lakehouse.

Depois de anexar um Lakehouse ao seu bloco de anotações do Microsoft Fabric, você pode explorar os dados armazenados sem sair da página e lê-los em seu bloco de anotações com apenas algumas etapas. Selecionar qualquer arquivo Lakehouse exibe opções para "Carregar dados" em um DataFrame Spark ou Pandas. Você também pode copiar o caminho ABFS completo do arquivo ou um caminho relativo amigável.

Captura de tela que mostra as opções para carregar dados em um Pandas DataFrame.

Selecionar um dos prompts "Carregar dados" gera uma célula de código que carrega o arquivo em um DataFrame em seu bloco de anotações.

Captura de ecrã que mostra uma célula de código adicionada ao bloco de notas.

Convertendo um Spark DataFrame em um Pandas DataFrame

Para referência, este comando mostra como converter um Spark DataFrame em um Pandas DataFrame:

# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas() 

Leitura e gravação de vários formatos de arquivo

Nota

Modificar a versão de um pacote específico pode potencialmente quebrar outros pacotes que dependem dele. Por exemplo, o azure-storage-blob downgrade pode causar problemas com Pandas e várias outras bibliotecas que dependem de Pandas, incluindo mssparkutils, fsspec_wrapper, e notebookutils. Você pode visualizar a lista de pacotes pré-instalados e suas versões para cada tempo de execução aqui.

Esses exemplos de código demonstram operações Pandas para ler e gravar vários formatos de arquivo. Esses exemplos não devem ser executados sequencialmente como em um tutorial, mas sim copiados e colados em seu próprio bloco de anotações, conforme necessário.

Nota

Você deve substituir os caminhos de arquivo nesses exemplos de código. O Pandas suporta caminhos relativos, como mostrado aqui, e caminhos ABFS completos. Você pode recuperar e copiar caminhos de qualquer tipo da interface usando as etapas anteriores.

Ler dados de um arquivo CSV

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv")
display(df)

Gravar dados como um arquivo CSV

import pandas as pd 

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv") 

Ler dados de um arquivo Parquet

import pandas as pd 
 
# Read a Parquet file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 
display(df)

Gravar dados como um arquivo Parquet

import pandas as pd 
 
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 

Ler dados de um ficheiro Excel

import pandas as pd 
 
# Read an Excel file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
# If the file is in a subfolder, add the correct file path after Files/
# For the default lakehouse attached to the notebook, use: df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx") 
df = pd.read_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 
display(df) 

Gravar dados como um arquivo do Excel

import pandas as pd 

# Write a Pandas DataFrame into an Excel file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 

Ler dados de um arquivo JSON

import pandas as pd 
 
# Read a JSON file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 
display(df) 

Gravar dados como um arquivo JSON

import pandas as pd 
 
# Write a Pandas DataFrame into a JSON file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 

Trabalhando com tabelas Delta

As tabelas delta são o formato de tabela padrão no Microsoft Fabric e são armazenadas na seção Tabelas do Lakehouse. Ao contrário dos arquivos, as tabelas Delta exigem um processo de duas etapas para trabalhar com pandas: primeiro leia a tabela em um Spark DataFrame e, em seguida, converta-a em um Pandas DataFrame.

Criar uma tabela Delta de teste

Para seguir as etapas nesta seção, você precisa de uma tabela Delta em sua Lakehouse. Siga as etapas em Baixar conjunto de dados e fazer upload para lakehouse para adicionar o arquivo churn.csv ao seu Lakehouse e, em seguida, crie uma tabela de teste a partir do arquivo churn.csv executando este código em seu bloco de anotações:

import pandas as pd
# Create a test Delta table from the churn.csv file

df = pd.read_csv("/lakehouse/default/Files/churn/raw/churn.csv")
spark_df = spark.createDataFrame(df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("churn_table")

Isso cria uma tabela Delta chamada churn_table que você pode usar para testar os exemplos abaixo.

Ler dados de uma tabela Delta

# Read a Delta table from your Lakehouse into a pandas DataFrame
# This example uses the churn_table created above
spark_df = spark.read.format("delta").load("Tables/churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Você também pode ler tabelas Delta usando a sintaxe do Spark SQL:

# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Gravar pandas DataFrame em uma tabela Delta

# Convert pandas DataFrame to Spark DataFrame, then save as Delta table
# Replace TABLE_NAME with your desired table name
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

Você também pode salvar em um caminho específico na seção Tabelas:

# Save to a specific path in the Tables section
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").save("Tables/TABLE_NAME")

Modos de escrita para tabelas Delta

Ao gravar em tabelas Delta, você pode especificar diferentes modos:

# Overwrite the entire table
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

# Append new data to existing table
spark_df.write.format("delta").mode("append").saveAsTable("TABLE_NAME")

Nota

As tabelas delta criadas na seção Tabelas do Lakehouse podem ser detetadas sem nenhuma etapa adicional de registro ou configuração e podem ser consultadas usando o Spark SQL. Eles também aparecem na interface do Lakehouse explorer (talvez seja necessário atualizar o Lakehouse explorer para ver as alterações recentes).