Databricks dbutils.fs.ls показывает файлы.Однако их чтение приводит к ошибке ввода-вывода - PullRequest
0 голосов
/ 10 октября 2018

Я запускаю Spark Cluster, и когда я выполняю приведенную ниже команду в блокноте Databricks, он выдает мне вывод:

dbutils.fs.ls("/mnt/test_file.json")

[FileInfo(path=u'dbfs:/mnt/test_file.json', name=u'test_file.json', size=1083L)]

Однако, когда я пытаюсь прочитать этот файл, яполучаю указанную ниже ошибку:

with open("mnt/test_file.json", 'r') as f:
  for line in f:
    print line

IOError: [Errno 2] No such file or directory: 'mnt/test_file.json'

В чем здесь проблема?Любая помощь / поддержка приветствуется.

1 Ответ

0 голосов
/ 10 октября 2018

Чтобы получить доступ к файлам на монтировании DBFS с помощью локальных файловых API, вам необходимо добавить /dbfs к пути, поэтому в вашем случае это должно быть

with open("/dbfs/mnt/test_file.json", 'r') as f:
  for line in f:
    print line

Обратите внимание, что есть Ограничение на размер файла 2 ГБ при чтении с локальными файловыми API напрямую в DBFS.Для файлов большего размера вы можете использовать dbutils.fs.cp, чтобы вместо этого сделать локальную копию файла.

Подробнее см. В документации по https://docs.databricks.com/user-guide/dbfs-databricks-file-system.html#access-dbfs-using-local-file-apis

...