Управление файлами в томах
В этой статье приведены примеры управления файлами в томах каталога Unity для различных пользовательских интерфейсов, инструментов, библиотек и языков.
Databricks рекомендует использовать тома для управления всем доступом ко всем не табличным данным в облачном хранилище объектов. Ниже приведены примеры не табличных данных:
- Файлы данных для приема, таких как CSV, JSON и Parquet.
- Текстовые, изображения и звуковые файлы для рабочих нагрузок обработки и анализа данных, машинного обучения и искусственного интеллекта.
- Артефакты CSV или JSON, написанные Azure Databricks для интеграции с внешними системами.
Тома можно использовать для хранения таких файлов, как библиотеки, скрипты и артефакты сборки. Рекомендации по файлам в томах и файлах рабочей области.
Работа с файлами в томах с помощью пользовательского интерфейса обозревателя каталогов
Обозреватель каталогов предоставляет параметры для распространенных задач управления файлами, хранящимися в томах каталога Unity.
Чтобы взаимодействовать с файлами в томе, выполните следующие действия.
- В рабочей области Azure Databricks щелкните "Каталог".
- Найдите или найдите том, с которым вы хотите работать, и выберите его.
Дополнительные сведения о создании томов и управлении ими см. в статье "Создание томов и управление ими".
Отправка файлов в том
Кнопка "Отправить в этот том " открывает диалоговое окно для отправки файлов. См. раздел "Отправка файлов в том каталога Unity".
Отправленные файлы не могут превышать 5 ГБ.
Скачивание файлов из тома
Чтобы скачать файлы из тома, сделайте следующее:
- Выберите один или несколько файлов.
- Нажмите кнопку "Скачать" , чтобы скачать эти файлы.
Удаление файлов из тома
Чтобы удалить файлы из тома, сделайте следующее:
- Выберите один или несколько файлов.
- Нажмите Удалить.
- Нажмите кнопку "Удалить" , чтобы подтвердить в появившемся диалоговом окне.
Создание пустого каталога
Чтобы создать новый каталог в томе, сделайте следующее:
- Щелкните справа от имени тома.
- Выберите " Создать каталог".
- Введите имя каталога.
- Нажмите кнопку Создать.
Удаление каталогов из тома
Чтобы удалить каталоги из тома, сделайте следующее:
- Выберите один или несколько каталогов.
- Нажмите Удалить.
- Нажмите кнопку "Удалить" , чтобы подтвердить в появившемся диалоговом окне.
Задачи управления файлами пользовательского интерфейса для томов
Щелкните меню кебаб рядом с именем файла, чтобы выполнить следующие действия:
- Скопировать путь
- Загрузить файл
- Удалить файл
- Создать таблицу
Создание таблицы из данных в томе
Azure Databricks предоставляет пользовательский интерфейс для создания управляемой таблицы каталога Unity из файла, файлов или каталога файлов, хранящихся в томе каталога Unity.
У вас должны быть CREATE TABLE
разрешения в целевой схеме и доступ к работающему хранилищу SQL.
Выберите один или несколько файлов или каталог. Файлы должны иметь тот же макет данных.
Нажмите кнопку "Создать таблицу". Откроется диалоговое окно "Создание таблицы из томов ".
Используйте предоставленное диалоговое окно для просмотра данных и выполнения следующих конфигураций:
- Выберите создать новую таблицу или перезаписать существующую таблицу
- Выберите целевой каталог и схему.
- Укажите имя таблицы.
- (Необязательно) Переопределите имена столбцов и типы столбцов по умолчанию или исключите столбцы.
Примечание.
Нажмите кнопку "Дополнительные атрибуты" , чтобы просмотреть дополнительные параметры.
Нажмите кнопку "Создать таблицу", чтобы создать таблицу с указанными атрибутами. По завершении обозреватель каталогов отображает сведения о таблице.
Программное использование файлов в томах в Azure Databricks
Файлы можно считывать и записывать в томах из всех поддерживаемых языков и редакторов рабочих областей с помощью следующего формата:
/Volumes/catalog_name/schema_name/volume_name/path/to/files
Вы взаимодействуете с файлами в томах так же, как и с файлами в любом расположении облачного хранилища объектов. Это означает, что если в настоящее время вы управляете кодом, использующим облачные URI, пути подключения DBFS или корневые пути DBFS для взаимодействия с данными или файлами, вы можете обновить код для использования томов.
Примечание.
Тома используются только для не табличных данных. Databricks рекомендует регистрировать табличные данные с помощью таблиц каталога Unity, а затем считывать и записывать данные с помощью имен таблиц.
Чтение и запись данных в томах
Вы можете использовать Apache Spark, pandas, Spark SQL и другие библиотеки OSS для чтения и записи файлов данных в томах.
В следующих примерах показано чтение CSV-файла, хранящегося в томе:
Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
Pandas.
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SQL
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
Команды служебной программы для файлов в томах
Databricks предоставляет следующие средства для управления файлами в томах:
- Подмодул
dbutils.fs
в служебных службах Databricks. См . служебную программу файловой системы (dbutils.fs). - Магия
%fs
, которая является псевдонимом дляdbutils.fs
. - Магия
%sh
, которая позволяет команде Bash против томов.
Пример использования этих средств для скачивания файлов из Интернета, распакачивания файлов и перемещения файлов из эфемерного хранилища в тома см. в разделе "Скачивание данных из Интернета".
Пакеты OSS можно также использовать для команд служебной программы файлов, таких как модуль Python os
, как показано в следующем примере:
import os
os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')
Управление файлами в томах из внешних средств
Databricks предоставляет набор средств для программного управления файлами в томах из локальной среды или интегрированных систем.
Команды SQL для файлов в томах
Azure Databricks поддерживает следующие ключевые слова SQL для взаимодействия с файлами в томах:
Примечание.
Записные книжки Databricks или редактор запросов поддерживают LIST
только команду.
Следующие соединители и драйверы Databricks SQL поддерживают управление файлами в томах:
- Соединитель DATAbricks SQL для Python. См. раздел "Управление файлами" в томах каталога Unity.
- Драйвер SQL Databricks для Go. См. раздел "Управление файлами" в томах каталога Unity.
- Драйвер SQL Databricks для Node.js. См. раздел "Управление файлами" в томах каталога Unity.
- Драйвер JDBC Databricks. См. раздел "Управление файлами в томах каталога Unity" с помощью драйвера JDBC Databricks.
- Драйвер ODBC Databricks. См. раздел "Управление файлами в томах каталога Unity" с помощью драйвера ODBC Databricks.
Управление файлами в томах с помощью интерфейса командной строки Databricks
Используйте вложенные команды в databricks fs
. См . группу команд fs.
Примечание.
Интерфейс командной строки Databricks требует, чтобы схема dbfs:/
предшествовала всем путям томов. Например, dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data
.
Управление файлами в томах с помощью пакетов SDK
Следующие пакеты SDK поддерживают управление файлами в томах:
- Пакет SDK Databricks для Python. Используйте доступные методы в WorkspaceClient.files. Примеры см. в разделе "Управление файлами в томах каталога Unity".
- Пакет SDK Databricks для Java. Используйте доступные методы в WorkspaceClient.files. Примеры см. в разделе "Управление файлами в томах каталога Unity".
- Пакет SDK Databricks для Go. Используйте доступные методы в WorkspaceClient.files. Примеры см. в разделе "Управление файлами в томах каталога Unity".
Управление файлами в томах с помощью REST API
Используйте API файлов для управления файлами в томах.
Примеры REST API для файлов в томах
В следующих примерах используется curl
REST API Databricks для выполнения задач управления файлами в томах.
В следующем примере создается пустая папка с именем my-folder
в указанном томе.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
В следующем примере создается файл data.csv
с указанными данными в указанном пути в томе.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'
В следующем примере перечислены содержимое тома в указанном пути. В этом примере jq используется для форматирования JSON текста ответа для упрощения чтения.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
В следующем примере перечислены содержимое папки в томе в указанном пути. В этом примере jq используется для форматирования JSON текста ответа для упрощения чтения.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
В следующем примере выводится содержимое файла в указанном пути в томе.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
В следующем примере файл удаляется в указанном пути из тома.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
В следующем примере удаляется папка из указанного тома.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"