Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Notesy usługi Microsoft Fabric obsługują bezproblemową interakcję z danymi usługi Lakehouse przy użyciu biblioteki Pandas, najpopularniejszej biblioteki języka Python na potrzeby eksploracji i przetwarzania danych. W notesie można szybko odczytywać dane z zasobów usługi Lakehouse i zapisywać je z powrotem w różnych formatach plików. Ten przewodnik zawiera przykłady kodu ułatwiające rozpoczęcie pracy we własnym notesie.
Wymagania wstępne
Uzyskaj subskrypcję usługi Microsoft Fabric. Możesz też utworzyć konto bezpłatnej wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
- Wykonaj kroki opisane w artykule Prepare your system for data science tutorials (Przygotowywanie systemu do nauki o danych ), aby utworzyć nowy notes i dołączyć do niego usługę Lakehouse. W tym artykule wykonaj kroki tworzenia nowego notesu, a nie importowania istniejącego.
Użyj tego workflow, aby wybrać odpowiedni wzorzec:
- Dla pojedynczych plików w Lakehouse można je odczytać lub zapisać za pomocą Pandas, używając ścieżki pod
Files. - Dla danych podobnych do tabel w Lakehouse używaj tabel Spark i Delta, a następnie konwertuj do Pandas tylko wtedy, gdy wynik zmieści się w pamięci notesu.
- Jeśli dane są duże, trzymaj je w Sparku do filtrowania, agregacji i transformacji przed konwersją do Pandas DataFrame.
Ładowanie danych usługi Lakehouse do notesu
Uwaga
Aby wykonać kroki opisane w tej sekcji, potrzebne są pewne dane w usłudze Lakehouse. Jeśli nie masz żadnych danych, wykonaj kroki opisane w temacie Pobieranie zestawu danych i przekazywanie do usługi Lakehouse , aby dodać plik churn.csv do usługi Lakehouse.
Po podłączeniu Lakehouse do swojego notesu Microsoft Fabric możesz eksplorować przechowywane dane bez opuszczania strony i skopiować ścieżkę pliku potrzebną do kodu notatnika. W eksploratorze Lakehouse możesz użyć wygenerowanego fragmentu notatnika, aby załadować plik do Spark lub Pandas DataFrame albo skopiować pełną ścieżkę ABFS pliku. Dla domyślnego Lakehouse dołączonego do notatnika typowa ścieżka do folderu Pliki wygląda następująco: /lakehouse/default/Files/.... Dla innych Lakehouse skorzystaj ze ścieżki ABFS z Lakehouse explorer.
Wybranie pliku w eksploratorze Lakehouse może wygenerować kod, który ładuje plik do DataFrame w Twoim notesie.
Konwertowanie ramki danych platformy Spark na ramkę danych biblioteki Pandas
Ważna
toPandas() ładuje pełny obiekt Spark DataFrame do pamięci sterownika notebooka. Używaj go tylko do małych i średnich zestawów wyników. Jeśli Twój zbiór danych jest duży, przefiltruj, agreguj lub próbkuj go w Spark przed konwersją do Pandas.
Dla odniesienia to polecenie pokazuje, jak przekonwertować obiekt DataFrame Spark na obiekt DataFrame biblioteki Pandas:
# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas()
Odczytywanie i zapisywanie różnych formatów plików
Uwaga
Zmodyfikowanie wersji określonego pakietu może potencjalnie spowodować przerwanie innych pakietów, które od niego zależą. Na przykład obniżenie wersji azure-storage-blob może powodować problemy z Pandas i różnymi innymi bibliotekami, które opierają się na Pandas, w tym mssparkutils, fsspec_wrapper i notebookutils.
Listę wstępnie zainstalowanych pakietów i ich wersji dla każdego środowiska uruchomieniowego można wyświetlić tutaj.
Te przykłady kodu przedstawiają operacje biblioteki Pandas umożliwiające odczytywanie i zapisywanie różnych formatów plików. Te próbki nie są przeznaczone do uruchamiania sekwencyjnie, jak w samouczku, lecz do skopiowania i wklejenia do własnego notatnika według potrzeb.
Uwaga
Musisz zastąpić ścieżki plików w tych przykładach kodu pełną ścieżką dla pliku w Twoim Lakehouse. Dla domyślnego Lakehouse dołączonego do notatnika użyj ścieżki takiej jak /lakehouse/default/Files/.... Dla innych Lakehouse skorzystaj ze ścieżki ABFS z Lakehouse explorer.
Odczytywanie danych z pliku CSV
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)
Zapisywanie danych jako pliku CSV
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)
Odczytywanie danych z pliku Parquet
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)
Zapisz dane do pliku Parquet
import pandas as pd
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
df.to_parquet("/lakehouse/default/Files/FILENAME.parquet")
Odczytywanie danych z pliku programu Excel
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)
Zapisywanie danych jako pliku programu Excel
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)
Odczytywanie danych z pliku JSON
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)
Zapisywanie danych jako pliku JSON
import pandas as pd
# Write a Pandas DataFrame into a JSON file in your Lakehouse
df.to_json("/lakehouse/default/Files/FILENAME.json")
Praca z tabelami delty
Tabele Delta są domyślnym formatem tabel w usłudze Microsoft Fabric i są przechowywane w sekcji Tabele magazynu Lakehouse. Pliki i tabele to różne miejsca przechowywania w Fabric i wykorzystują różne wzorce dostępu. Aby pracować z tabelami Delta w Pandas, najpierw przeczytaj tabelę do Spark DataFrame, a następnie przekonwertuj filtrowany wynik do Pandas DataFrame tylko wtedy, gdy zmieści się on w pamięci sterownika.
Tworzenie testowej tabeli delty
Aby wykonać kroki opisane w tej sekcji, potrzebujesz tabeli delty w usłudze Lakehouse. Wykonaj kroki opisane w temacie Pobieranie zestawu danych i przekazywanie do usługi Lakehouse , aby dodać plik churn.csv do usługi Lakehouse, a następnie utwórz tabelę testową z pliku churn.csv , uruchamiając ten kod w notesie:
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")
Ten krok tworzy tabelę Delty o nazwie churn_table , którą możesz wykorzystać do testowania poniższych przykładów.
Odczytywanie danych z tabeli delty
# 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)
Tabele delty można również odczytywać przy użyciu składni Spark SQL:
# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)
Zapisywanie ramki danych biblioteki pandas w tabeli delty
# 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")
Możesz również zapisać w określonej lokalizacji w sekcji Tabele:
# 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")
Tryby zapisu dla tabel Delta
Podczas zapisywania do tabel Delta można określić różne tryby:
# 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")
Uwaga
Tabele Delta utworzone w sekcji Tabele Twojej usługi Lakehouse są automatycznie wykrywane bez żadnych dodatkowych kroków rejestracji ani konfiguracji i można je odpytwać za pomocą języka Spark SQL. Są one również wyświetlane w interfejsie eksploratora usługi Lakehouse (może być konieczne odświeżenie eksploratora usługi Lakehouse w celu wyświetlenia ostatnich zmian).
Powiązana zawartość
- Czyszczenie i przygotowywanie danych przy użyciu narzędzia Data Wrangler
- Rozpoczynanie trenowania modeli uczenia maszynowego