Не удается получить доступ к /dbfs/FileStore с помощью команд оболочки в среде выполнения databricks версии 7
Во время выполнения databricks версии 6.6 я могу успешно запустить команду оболочки, подобную следующей:
%sh ls /dbfs/FileStore/tables
Однако в среде выполнения версии 7 это больше не работает. Есть ли способ получить прямой доступ к /dbfs/FileStore во время выполнения версии 7? Мне нужно запустить команды, чтобы распаковать zip-файл паркета в /dbfs/FileStore/tables. Раньше это работало в версии 6.6, но новое "обновление" Databricks нарушает эту простую базовую функциональность.
Не уверен, имеет ли это значение, но я использую версию библиотеки данных сообщества.
3 ответа
КОГДА ты бежишь%sh ls /dbfs/FileStore/tables
вы не можете получить доступ /dbfs/FileStore
с помощью команд оболочки в среде выполнения databricks версии 7, поскольку по умолчанию папка с именем '/dbfs/FileStore' does not exists in the 'dbfs'
.
Попробуйте загрузить файлы в/dbfs/FileStore/Tables
'.
Теперь попробуйте снова запустить ту же команду %sh ls /dbfs/FileStore/tables
, теперь вы видите результаты, потому что мы загрузили данные в /dbfs/FileStore/tables
папка.
В
/dbfs
mount не работает в Community Edition с DBR>= 7.x - это известное ограничение.
Вы можете обойти это ограничение, работая с файлами в узле драйвера и загружая или скачивая файлы с помощью
dbutils.fs.cp
команда (документы ). Итак, ваш код будет выглядеть следующим образом:
#write a file to local filesystem using Python I/O APIs
...
# upload file to DBFS
dbutils.fs.cp('file:/tmp/local-path', 'dbfs:/FileStore/tables/dbfs_file.txt')
а чтение из DBFS будет выглядеть следующим образом:
# copy file from DBFS to local file_system
dbutils.fs.cp('dbfs:/tmp/dbfs_file.txt', 'file:/tmp/local-path')
# read the file locally
...
Я знаю, что этому вопросу год, но я хотел поделиться другими сообщениями, которые я нашел полезными, на случай, если у кого-то возникнет такой же вопрос.
Я нашел комментарии к этому аналогичному вопросу, чтобы быть полезными: как получить доступ к DBFS из оболочки?. Комментарии в вышеупомянутом сообщении также ссылаются на Невозможно скопировать файл dbfs в кластер выпуска сообщества databricks. FileNotFoundError: [Errno 2] Нет такого файла или каталога: я также нашел полезным.
Я узнал в Community Edition
ls /dbfs/FileStore/tables
невозможно, потому что сама dbfs не смонтирована на узлах и эта функция отключена.