Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Записные книжки Microsoft Fabric поддерживают простое взаимодействие с данными Lakehouse с помощью Pandas, самой популярной библиотеки Python для изучения и обработки данных. В записной книжке можно быстро считывать данные из ресурсов Lakehouse и записывать их обратно в различные форматы файлов. В этом руководстве приведены примеры кода, которые помогут вам приступить к работе с собственной записной книжкой.
Предварительные требования
Получите подписку Microsoft Fabric. Или зарегистрируйте бесплатную пробную версию Microsoft Fabric.
Войдите в Microsoft Fabric.
Перейдите в Fabric с помощью переключателя интерфейса в левой нижней части домашней страницы.
- Выполните шаги, указанные в руководстве по подготовке системы для учебных материалов по анализу данных, чтобы создать новый ноутбук и подключить к нему Lakehouse. Для этой статьи выполните действия, чтобы создать новую записную книжку, а не импортировать существующую.
Используйте этот рабочий процесс, чтобы выбрать правильный паттерн:
- Для отдельных файлов в Lakehouse читайте или записывайте их с помощью Pandas по пути под
Files. - Для таблицоподобных данных в Lakehouse используйте таблицы Spark и Delta, а затем конвертируйте в Pandas только тогда, когда результат помещается в памяти вашего блокнота.
- Если данные большие, храните их в Spark для фильтрации, агрегации и преобразования перед преобразованием в Pandas DataFrame.
Загрузка данных Lakehouse в записную книжку
Примечание.
Чтобы выполнить действия, описанные в этом разделе, вам потребуются некоторые данные в Lakehouse. Если у вас нет данных, выполните действия, описанные в разделе "Скачивание набора данных" и отправку в Lakehouse , чтобы добавить файлchurn.csv в Lakehouse.
После того как вы прикрепите Lakehouse к своему ноутбуку Microsoft Fabric, вы сможете исследовать хранящиеся данные, не покидая страницу, и скопировать путь файла, необходимый для кода ноутбука. В исследователе Lakehouse вы можете использовать сгенерированный фрагмент блокнота, чтобы загрузить файл в Spark или Pandas DataFrame, либо скопировать полный ABFS-путь файла. Для стандартного Lakehouse, подключённого к ноутбуку, типичный путь к файлам выглядит как /lakehouse/default/Files/.... Для других Lakehouse используйте путь ABFS в обозревателе Lakehouse.
Выбор файла в проводнике Lakehouse может сгенерировать код, который загружает файл в DataFrame в вашем ноутбуке.
Преобразование Spark DataFrame в Pandas DataFrame
Important
toPandas() загружает весь DataFrame Spark в память драйвера ноутбука. Использую его только для небольших или средних наборов результатов. Если ваш набор данных большой, отфильтруйте, агрегируйте или сэмплируйте его в Spark перед конвертацией в Panda.
Для справки в этой команде показано, как преобразовать кадр данных Spark в кадр данных Pandas:
# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas()
Чтение и запись различных форматов файлов
Примечание.
Изменение версии определенного пакета может потенциально нарушить другие пакеты, которые зависят от него. Например, понижение версии azure-storage-blob может привести к проблемам с Pandas и различными другими библиотеками, которые зависят от Pandas, в том числе mssparkutils, fsspec_wrapper и notebookutils.
Вы можете просмотреть список предварительно установленных пакетов и их версий для каждой среды выполнения.
Эти примеры кода демонстрируют операции Pandas для чтения и записи различных форматов файлов. Эти примеры не предназначены для последовательного выполнения, как в руководстве, а для копирования и вставки в собственную записную книжку по мере необходимости.
Примечание.
Вы должны заменить пути к файлам в этих примерах кода на полный путь к файлу в вашем Lakehouse. Для стандартного Lakehouse, прикреплённого к блокноту, используйте путь, например /lakehouse/default/Files/.... Для других Lakehouse используйте путь ABFS из обозревателя Lakehouse.
Чтение данных из 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)
Запись данных в ВИДЕ 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)
Чтение данных из файла 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)
Записать данные в файл Parquet
import pandas as pd
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
df.to_parquet("/lakehouse/default/Files/FILENAME.parquet")
Чтение данных из файла 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)
Запись данных в виде файла 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)
Чтение данных из 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)
Запись данных в виде JSON-файла
import pandas as pd
# Write a Pandas DataFrame into a JSON file in your Lakehouse
df.to_json("/lakehouse/default/Files/FILENAME.json")
Работа с таблицами Delta
Таблицы Delta — это формат таблиц по умолчанию в Microsoft Fabric, и они хранятся в разделе Tables вашего Lakehouse. Файлы и таблицы — это разные места хранения в Fabric, и они используют разные шаблоны доступа. Чтобы работать с таблицами Delta в Pandas, сначала загрузите таблицу в DataFrame Spark, затем преобразуйте отфильтрованный результат в DataFrame pandas только если он помещается в памяти драйвера.
Создание тестовой таблицы Delta
Чтобы выполнить шаги, описанные в этом разделе, вам потребуется таблица Delta в вашем Lakehouse. Выполните действия, описанные в разделе "Скачать набор данных" и отправьте его в Lakehouse , чтобы добавить файлchurn.csv в Lakehouse, а затем создайте тестовую таблицу из файла churn.csv , выполнив этот код в записной книжке:
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")
Этот шаг создаёт таблицу Delta под названием churn_table , которую можно использовать для тестирования следующих примеров.
Чтение данных из таблицы Delta
# 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)
Вы также можете читать таблицы Delta с помощью синтаксиса Spark SQL:
# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)
Записать pandas DataFrame в таблицу 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")
Вы также можете сохранить по определенному пути в разделе «Таблицы»:
# 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")
Режимы записи для разностных таблиц
При записи в таблицы Delta можно указать разные режимы:
# 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")
Примечание.
Разностные таблицы, созданные в разделе "Таблицы " в Lakehouse, доступны без дополнительных шагов регистрации или настройки и могут запрашиваться с помощью Spark SQL. Они также отображаются в интерфейсе обозревателя Lakehouse (может потребоваться обновить обозреватель Lakehouse, чтобы увидеть последние изменения).
Связанный контент
- Используйте Data Wrangler, чтобы очистить и подготовить данные
- Начать обучение моделей машинного обучения