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