Как скопировать локальный файл в хранилище файлов 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>)
Другие вопросы по тегам