Блоки данных: Загрузить файл dbfs:/FileStore на мой локальный компьютер?
Я использую saveAsTextFile() для хранения результатов работы Spark в папке dbfs:/FileStore/my_result.
Я могу получить доступ к различным файлам "part-xxxxx" с помощью веб-браузера, но я хотел бы автоматизировать процесс загрузки всех файлов на мой локальный компьютер.
Я пытался использовать cURL, но не могу найти команду RestAPI для загрузки файла dbfs: / FileStore.
Вопрос: Как я могу загрузить файл dbfs: / FileStore на мою локальную машину?
Я использую Databricks Community Edition, чтобы преподавать модуль бакалавриата в Big Data Analytics в колледже. У меня установлена Windows 7 на моей локальной машине. Я проверил, что файлы cURL и _netrc правильно установлены и настроены, поскольку мне удается успешно выполнить некоторые команды, предоставляемые RestAPI.
Заранее большое спасибо за вашу помощь! С наилучшими пожеланиями, Начо
6 ответов
Существует несколько вариантов загрузки файлов FileStore на локальный компьютер.
Более простые варианты:
- Установите CLI Databricks, настройте его с вашими учетными данными Databricks и используйте CLI
dbfs cp
команда. Например:dbfs cp dbfs:/FileStore/test.txt ./test.txt
, Если вы хотите скачать всю папку с файлами, вы можете использоватьdbfs cp -r
, - От браузера, вошедшего в Databricks, перейдите к
https://<YOUR_DATABRICKS_INSTANCE_NAME>.cloud.databricks.com/files/
, Если вы используете Databricks Community Edition, то вам может потребоваться использовать несколько иной путь. Этот метод загрузки более подробно описан в документации FileStore.
Расширенные настройки:
- Используйте DBFS REST API. Вы можете получить доступ к содержимому файла, используя
read
Вызов API. Для загрузки большого файла может потребоватьсяread
вызовы для доступа к частям полного файла.
Самым простым способом для меня было использовать метод отображения.
Ссылка: https://www.learntospark.com/2021/04/download-data-from-dbfs-to-local.html
Самый быстрый способ загрузить небольшой файл из версии сообщества Databricks DBFS:
Когда вы посещаете версию сообщества Databricks, ссылка выглядит так:
https://community.cloud.databricks.com/?o=<unique ID>
Загрузите свой файл в папку
FileStore > tables
. Тогда ссылка для скачивания будет выглядеть так:
https://community.cloud.databricks.com/files/tables/sample_file.csv?o=<your unique ID>
Последнее тестирование: 17 августа 2021 г.
Используя браузер, вы можете получить доступ к отдельному файлу в хранилище файлов. Вы не можете получить доступ к каталогам или даже перечислить их. Итак, сначала вам нужно поместить какой-нибудь файл в хранилище файлов. Если у вас есть файл "example.txt" в "/ FileStore / example_directory/", вы можете загрузить его по следующему URL-адресу:
https://community.cloud.databricks.com/files/example_directory/example.txt?o=
В этом URL-адресе "###" необходимо заменить длинным числом, которое вы найдете в конце URL-адреса вашей версии сообщества (после входа в учетную запись версии сообщества).
Добавить комментарий · Поделиться
Вы можете использовать ссылку, как показано ниже, и у меня она отлично сработала. Даже большие файлы мы тоже скачиваем. Вы можете использовать ссылку, как в этом примере ниже:
https://northeurope.azuredatabricks.net/files/<exact_file_path_with_folder(if_any)>?o=<your_unique_id>
Я предполагаю, что вы уже настроили интерфейс командной строки Databricks и запустили его.
Примечание. – Мы можем использовать либо «databricks fs», либо «dbfs» как взаимозаменяемые.
Работа с файлом блоков данных
Скопируйте файл из блоков данных на локальный компьютер.
dbfs cp <путь к блокам данных> <путь к локальному репозиторию>
Пример :-
dbfs cp dbfs:/FileStore/PricingData/Output.csv C:\Users\Waqar\Desktop\Output
Скопировать файл с локального компьютера в блоки данных
dbfs cp <путь к файлу на локальном компьютере с именем файла> <путь к папке databricks>
Пример :-
dbfs cp C:\Users\Waqar\Desktop\Output\data.csv dbfs:/FileStore/PricingData
Работа с каталогом блоков данных
Скопируйте каталог из блоков данных на свой локальный компьютер.
dbfs cp -r <путь к каталогу databricks> <путь к локальному каталогу>
Пример :-
dbfs cp -r dbfs:/FileStore/PricingData C:\Users\Waqar\Desktop\Output
Скопировать каталог с локального компьютера в блоки данных
dbfs cp -r <путь к каталогу локального компьютера> <путь к каталогу блоков данных>
Пример :-
dbfs cp -r C:\Users\Waqar\Desktop\Output dbfs:/FileStore/PricingData
Примечание. В каждом случае вам придется изменить путь к блокам данных. возможно, тебе придется измениться
/dfbs/FileStore/PricingData в dbfs:/FileStore/PricingData и так далее....