Как скопировать локальный файл в хранилище файлов DBFS Azure Databricks
Я использую приведенную ниже команду в Azure Databricks, чтобы попытаться скопировать файл test.csv с локального диска C: в расположение dbfs Databricks, как показано.
dbutils.fs.cp("C:/BoltQA/test.csv", "dbfs:/tmp/test_files/test.csv")
Я получаю эту ошибку:
java.io.IOException: No FileSystem for scheme: C
---------------------------------------------------------------------------
ExecutionError Traceback (most recent call last)
<command-3936625823332356> in <module>
----> 1 dbutils.fs.cp("C:/test.csv", "dbfs:/tmp/test_files/test.csv")
2
/local_disk0/tmp/1605164901540-0/dbutils.py in f_with_exception_handling(*args, **kwargs)
312 exc.__context__ = None
313 exc.__cause__ = None
--> 314 raise exc
315 return f_with_exception_handling
316
Помоги пожалуйста.
3 ответа
Спасибо за ответ @CHEEKATLAPRADEEP-MSFT.
Вы можете подключить контейнер хранилища BLOB-объектов или папку внутри контейнера к файловой системе Databricks (DBFS). Монтирование - это указатель на контейнер хранилища BLOB-объектов, поэтому данные никогда не синхронизируются локально. Обратитесь к docs.microsoft.com
К сожалению, вы не можете использовать
dbutils.fs.cp
команда для копирования файлов с локального компьютера в файловую систему Databricks. Раньше он копировал файлы только в файловой системе Databricks.
Есть несколько способов отправить файлы с локального компьютера в папку DBFS Azure Databricks.
Метод 1. Использование портала Azure Databricks.
Метод 2: использование интерфейса командной строки Databricks
Интерфейс командной строки (CLI) DBFS использует API DBFS, чтобы предоставить простой в использовании интерфейс командной строки для DBFS. Используя этот клиент, вы можете взаимодействовать с DBFS, используя команды, аналогичные тем, которые вы используете в командной строке Unix. Например:
# List files in DBFS
dbfs ls
# Put local file ./apple.txt to dbfs:/apple.txt
dbfs cp ./apple.txt dbfs:/apple.txt
# Get dbfs:/apple.txt and save to local file ./apple.txt
dbfs cp dbfs:/apple.txt ./apple.txt
# Recursively put local dir ./banana to dbfs:/banana
dbfs cp -r ./banana dbfs:/banana
Ссылка: Установка и настройка интерфейса командной строки Azure Databricks
Метод 3: использование стороннего инструмента с именем DBFS Explorer
DBFS Explorer был создан как быстрый способ загрузки и выгрузки файлов в файловую систему Databricks (DBFS). Это будет работать с экземплярами Databricks как AWS, так и Azure. Для подключения вам нужно будет создать токен на предъявителя в веб-интерфейсе.
Шаг 1: Загрузите и установите DBFS Explorer и установите его.
Шаг 2. Откройте проводник DBFS и введите: URL-адрес Databricks и токен личного доступа.
Шаг 3: Выберите папку, в которую вы хотите загрузить файлы с локального компьютера, и просто перетащите папку для загрузки и нажмите "Загрузить".
Локальные файлы можно распознать с помощьюfile://...
поэтому внесите изменения в команду, аналогичную приведенной ниже.
dbutils.fs.cp("file://c:/user/file.txt",<container path>)