Поделиться через


Можно ли использовать 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 Cloud служба хранилища.

Для быстрого изучения и данных без конфиденциальной информации можно безопасно сохранять данные с помощью относительных путей или 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
  }
)