Не удается получить доступ к /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 не смонтирована на узлах и эта функция отключена.

Другие вопросы по тегам