Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Databricks Runtime включает Pandas в качестве одного из стандартных пакетов Python, что позволяет создавать и использовать кадры данных Pandas в записных книжках и заданиях Databricks.
В Databricks Runtime 10.4 LTS и более поздних версиях API Pandas в Spark предоставляет знакомые команды pandas поверх PySpark DataFrame. Вы также можете преобразовывать DataFrames между Pandas и PySpark.
Apache Spark включает в себя выполнение логики Python, оптимизированное с использованием технологий Arrow, в виде функциональных API pandas, которые позволяют пользователям непосредственно применять преобразования pandas к ДатаФреймам PySpark. Apache Spark также поддерживает UDF pandas, которые используют аналогичные оптимизации с использованием Arrow для произвольных пользовательских функций, определенных в Python.
Где Pandas хранит данные в Azure Databricks?
Панды можно использовать для хранения данных в различных расположениях в Azure Databricks. Возможность хранить и загружать данные из некоторых расположений зависит от конфигураций, заданных администраторами рабочей области.
Примечание.
Databricks рекомендует хранить рабочие данные в облачном хранилище объектов. См. Подключение к Azure Data Lake Storage и Хранилище BLOB-объектов.
Если вы находитесь в рабочей области с включённым каталогом Unity, вы можете получить доступ к облачному хранилищу через внешние расположения. См. Обзор внешних расположений.
Для быстрого изучения и данных без конфиденциальной информации можно безопасно сохранять данные с помощью относительных путей или DBFS, как показано в следующих примерах:
Примечание.
Pandas использует пути в стиле POSIX, такие как /dbfs/..., и не может напрямую читать пути dbfs:/.... Чтобы прочитать файл DBFS с помощью pandas в вычислительной среде, поддерживающей DBFS FUSE, замените схему dbfs:/ на /dbfs/. Для поддержки всех типов вычислений используйте тома каталога Unity или файлы рабочей области. Ознакомьтесь с разделом "Что такое тома каталога Unity?" И нужно ли предоставить схему URI для доступа к данным?.
import pandas as pd
df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])
df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/tmp/dbfs_test.csv")
df.to_csv("/Volumes/my_catalog/my_schema/my_volume/volume_test.csv")
Вы можете просматривать файлы, записанные в DBFS, с помощью волшебной %fs команды:
%fs ls dbfs:/tmp
При сохранении в относительный путь расположение файла зависит от того, где выполняется код. Если вы используете записную книжку Databricks, файл данных сохраняется в хранилище томов, подключенном к драйверу кластера. Данные, хранящиеся в этом расположении, окончательно удаляются при завершении кластера. Если вы используете папки Databricks Git с включенной поддержкой произвольных файлов, данные сохраняются в корне текущего проекта. В любом случае вы можете изучить файлы, написанные с помощью %sh волшебной команды, которая позволяет выполнять простые операции bash относительно текущего корневого каталога, как показано в следующем примере:
%sh ls
Дополнительные сведения о том, как Azure Databricks хранит различные файлы, см. в статье "Работа с файлами в Azure Databricks".
Как загрузить данные с помощью Pandas в Azure Databricks?
Azure Databricks предоставляет ряд возможностей для упрощения отправки данных в рабочую область для изучения. Наиболее предпочтительный метод загрузки данных с помощью pandas зависит от того, каким образом вы загружаете данные в рабочую область.
При наличии небольших файлов данных, хранящихся вместе с записными книжками на локальном компьютере, вы можете передать данные и код вместе с папками Git. Затем можно использовать относительные пути для загрузки файлов данных.
Azure Databricks предоставляет широкие возможности загрузки данных на основе пользовательского интерфейса. Большинство этих параметров хранят данные в виде таблиц Delta. Вы можете считывать Delta таблицу в DataFrame Spark, а затем преобразовать его в DataFrame Pandas.
Если вы сохранили файлы данных с помощью DBFS или относительных путей, можно использовать DBFS или относительные пути для перезагрузки этих файлов данных. Примером является следующий код:
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/tmp/dbfs_test.csv")
Данные можно загружать прямо из Azure Data Lake Storage с помощью pandas и полностью квалифицированного URL-адреса. Для доступа к облачным данным необходимо предоставить облачные учетные данные. Пакеты fsspec Python и adlfs должны быть установлены.
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)