Sådan læser og skriver du data med Pandas i Microsoft Fabric

Microsoft Fabric-notesbøger understøtter problemfri interaktion med Lakehouse-data ved hjælp af Pandas, det mest populære Python-bibliotek til udforskning og behandling af data. I en notesbog kan du hurtigt læse data fra og skrive data tilbage til dine Lakehouse-ressourcer i forskellige filformater. Denne vejledning indeholder kodeeksempler, der kan hjælpe dig med at komme i gang i din egen notesbog.

Forudsætninger

  • Få et Microsoft Fabric-abonnement. Du kan også tilmelde dig en gratis Prøveversion af Microsoft Fabric.

  • Log på Microsoft Fabric.

  • Skift til Fabric ved at bruge experience-switcheren nederst til venstre på din startside.

    Skærmbillede, der viser valget af Fabric i oplevelsesskifter-menuen.

Brug denne arbejdsgang til at vælge det rigtige mønster:

  • For enkeltfiler i Lakehouse, læs eller skriv dem med Pandas ved hjælp af en sti under Files.
  • For tabellignende data i et Lakehouse, brug Spark- og Delta-tabeller, og konverter derefter kun til Pandas, når resultatet passer i din notesbogs hukommelse.
  • Hvis dataene er store, gem dem i Spark til filtrering, aggregering og transformation, før du konverterer dem til en Pandas DataFrame.

Indlæs Lakehouse-data i en notesbog

Bemærk

Du skal bruge nogle data i dit Lakehouse for at følge trinene i dette afsnit. Hvis du ikke har nogen data, skal du følge trinnene i Download datasæt, og upload til lakehouse for at føje denchurn.csv fil til dit Lakehouse.

Når du har tilsluttet en Lakehouse til din Microsoft Fabric-notesbog, kan du udforske lagrede data uden at forlade siden og kopiere den filsti, du har brug for til notesbogskoden. I Lakehouse Explorer kan du enten bruge den genererede notesbogsudklip til at indlæse en fil i en Spark- eller Pandas DataFrame eller kopiere filens fulde ABFS-sti. For standard-Lakehouse, der er tilknyttet notesbogen, ser en typisk Files-sti ud som /lakehouse/default/Files/.... For andre Lakehouses, brug ABFS-stien fra Lakehouse explorer.

Skærmbillede, der viser indstillingerne for indlæsning af data i en Pandas DataFrame.

Ved at vælge en fil i Lakehouse Explorer kan du generere kode, der indlæser filen i en DataFrame i din notesbog.

Skærmbillede, der viser en kodecelle, der er føjet til notesbogen.

Konvertering af en Spark DataFrame til en Pandas DataFrame

Vigtigt!

toPandas() indlæser hele Spark DataFrame i notebook-driverens hukommelse. Brug det kun til små til mellemstore resultatsæt. Hvis dit datasæt er stort, så filtrer, aggreger eller udtag prøver det i Spark, før du konverterer til Pandas.

Som reference viser denne kommando, hvordan du konverterer en Spark DataFrame til en Pandas DataFrame:

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

Læse og skrive forskellige filformater

Bemærk

Ændring af versionen af en bestemt pakke kan potentielt ødelægge andre pakker, der er afhængige af den. Nedgradering azure-storage-blob kan f.eks. medføre problemer med Pandas og forskellige andre biblioteker, der er afhængige Pandasaf , herunder mssparkutils, fsspec_wrapperog notebookutils. Du kan få vist listen over forudinstallerede pakker og deres versioner for hver kørsel her.

Disse kodeeksempler demonstrerer Pandas-operationer til at læse og skrive forskellige filformater. Disse eksempler er ikke beregnet til at blive kørt sekventielt som i et selvstudium, men snarere til at blive kopieret og indsat i din egen notesbog efter behov.

Bemærk

Du skal erstatte filstierne i disse kodeeksempler med den fulde sti for filen i dit Lakehouse. For standard-Lakehouse, der er tilknyttet notesbogen, brug en sti som /lakehouse/default/Files/.... For andre Lakehouses, brug ABFS-stien fra Lakehouse explorer.

Læs data fra en CSV-fil

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# For the default Lakehouse attached to the notebook, use the following path pattern:
df = pd.read_csv("/lakehouse/default/Files/FILENAME.csv")

# Verify that the file loaded successfully before continuing
print(df.head())
print(df.shape)
display(df)

Skriv data som en CSV-fil

import pandas as pd

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace FILENAME with your own value
df.to_csv("/lakehouse/default/Files/FILENAME.csv", index=False)

Læs data fra en Parquet-fil

import pandas as pd

# Read a Parquet file from your Lakehouse into a Pandas DataFrame
df = pd.read_parquet("/lakehouse/default/Files/FILENAME.parquet")
display(df)

Skriv data som en parquetfil

import pandas as pd

# Write a Pandas DataFrame into a Parquet file in your Lakehouse
df.to_parquet("/lakehouse/default/Files/FILENAME.parquet")

Læs data fra en Excel-fil

import pandas as pd

# Read an Excel file from your Lakehouse into a Pandas DataFrame
# If the file is in a subfolder, add the appropriate folder after Files/
df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx")
display(df)

Skriv data som en Excel-fil

import pandas as pd

# Write a Pandas DataFrame into an Excel file in your Lakehouse
df.to_excel("/lakehouse/default/Files/FILENAME.xlsx", index=False)

Læs data fra en JSON-fil

import pandas as pd

# Read a JSON file from your Lakehouse into a Pandas DataFrame
df = pd.read_json("/lakehouse/default/Files/FILENAME.json")
display(df)

Skriv data som en JSON-fil

import pandas as pd

# Write a Pandas DataFrame into a JSON file in your Lakehouse
df.to_json("/lakehouse/default/Files/FILENAME.json")

Arbejde med Delta-tabeller

Delta-tabeller er standardtabelformatet i Microsoft Fabric og gemmes i sektionen Tabeller i dit Lakehouse. Filer og tabeller er forskellige opbevaringssteder i Fabric, og de bruger forskellige adgangsmønstre. For at arbejde med Delta-tabeller i Pandas, læs først tabellen ind i en Spark DataFrame, og konverter derefter det filtrerede resultat til en pandas DataFrame, kun når det passer i driverhukommelsen.

Oprette en test-Delta-tabel

Hvis du vil følge trinnene i dette afsnit, skal du bruge en Delta-tabel i dit Lakehouse. Følg trinnene i Download datasæt, og upload til Lakehouse for at føje denchurn.csv fil til dit Lakehouse, og opret derefter en testtabel fra churn.csv filen ved at køre denne kode i din notesbog:

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")

Dette trin opretter en Delta-tabel kaldet churn_table , som du kan bruge til at teste følgende eksempler.

Læs data fra en Delta-tabel

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

Du kan også læse Delta-tabeller ved hjælp af Spark SQL-syntaks:

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

Skriv pandas DataFrame til en Delta-tabel

# 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")

Du kan også gemme på en bestemt sti i sektionen Tabeller:

# 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")

Skrivetilstande for Delta-tabeller

Når du skriver til Delta-tabeller, kan du angive forskellige tilstande:

# 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")

Bemærk

Delta-tabeller, der er oprettet i sektionen Tabeller i dit Lakehouse, kan findes uden yderligere registrerings- eller konfigurationstrin og kan forespørges ved hjælp af Spark SQL. De vises også i Lakehouse-stifindergrænsefladen (du skal muligvis opdatere Lakehouse-stifinderen for at se de seneste ændringer).