Ошибки с df.display() и df.show() в Databricks

Я обращаюсь к вам за помощью с некоторыми проблемами, с которыми я сталкиваюсь в своей среде Databricks. Я надеюсь, что сообщество сможет дать мне рекомендации, которые помогут мне решить эти проблемы.

1. Ошибка с df.display(): когда я пытаюсь использовать функцию df.display(), я получаю следующую ошибку: «' Не удалось сохранить результат. Попробуйте перезапустить команду. Не удалось загрузить результат команды в DBFS. Сообщение об ошибке: запрос PUT для создания файла, ошибка HttpResponse Proxy (HTTP/1.1 404). Указанная файловая система не существует. [Content-Length: 175 . Тип контента: application/json;charset=utf-8, Сервер: Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0, код ошибки x-ms: FilesystemNotFound, идентификатор-x-ms-request: 33854442-. 8011- 0028-3da6-bc0285000000, версия x-ms: 10 апреля 2021 г., дата: среда, 12 июня 2024 г., 08:59:45 GMT] Прокси-сервер объекта ответа ([Content-Type: application/json; charset = utf -8 Content-Length: 175, Chunked: false])) "

2. Ошибка с df.show(): Я также сталкиваюсь с аналогичной проблемой при использовании df.show() для фреймов данных, содержащих более 10-20 строк. Появляется та же ошибка, что указана в пункте 1.

Скриншоты ошибок

Отладочная информация:

  1. В ходе расследования я обнаружил, что проблема, по-видимому, связана с тем, что Databricks пытается получить доступ к корневому хранилищу и не может записать данные.

ошибка в журналах кластера: ''* ERROR PresignedUrlClientUtils$: FS_OP_CREATE FILE[https://<root_storage-account-name>.dfs.core.windows.net/jobs/4079550013704479 /command-results/4056370604825597/b3041abc-2eeb-45da-90b7-23d98973d4d0] Заданный URL-адрес: не удалось загрузить поток с помощью AzureAdl2SasUri*"

  1. Я попытался загрузить некоторые файлы в DBFS (файловая система Databricks) из пользовательского интерфейса, но выдает ошибку «Контейнер Azure не существует», а также код ошибки 500, но я вижу, что управляемое хранилище есть в группе управляемых ресурсов. .

  2. Та же ошибка возникла, когда я попытался импортировать 3–4 блокнота в общее расположение.

  3. Я пробовал использовать разные типы кластеров и блоков данных во время выполнения, но те же проблемы.

  4. У меня есть доступ администратора к рабочей области блоков данных, и я использую блоки данных уровня «Премиум» (+ элементы управления доступом на основе ролей).

  5. В настоящее время я использую другую учетную запись хранения для своей работы DE, используя учетные данные хранилища. Я могу легко получить доступ к данным в ноутбуках.

Я не знаю, как решить эту проблему, поскольку корневое хранилище находится внутри группы управляемых ресурсов Databricks, и я не могу это контролировать.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
128
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Сообщение об ошибке указывает, что указанная файловая система не существует. Это может быть по нескольким причинам:

Возможно, файловая система не смонтирована. Если вы используете Azure Data Lake Storage Gen2, вам необходимо смонтировать файловую систему перед доступом к файлам. Вы можете сделать это, используя метод dbutils.fs.mount().

Ниже приведен сценарий монтирования:

storageAccountName = "<ADLS GEN 2 Name>"
storageAccountAccessKey = <access-key>
sasToken = <sas-token>
blobContainerName = "aaa"
mountPoint = "/mnt/data/"
if not any(mount.mountPoint == mountPoint for mount in dbutils.fs.mounts()):
  try:
    dbutils.fs.mount(
      source = "wasbs://{}@{}.blob.core.windows.net".format(blobContainerName, storageAccountName),
      mount_point = mountPoint,
      #extra_configs = {'fs.azure.account.key.' + storageAccountName + '.blob.core.windows.net': storageAccountAccessKey}
      extra_configs = {'fs.azure.sas.' + blobContainerName + '.' + storageAccountName + '.blob.core.windows.net': sasToken}
    )
    print("mount succeeded!")
  except Exception as e:
    print("mount exception", e)

Также убедитесь, что вы установили управление доступом на основе ролей (RBAC) и роль для участника данных BLOB-объекта хранилища.

Ответ принят как подходящий

Я хотел бы поделиться некоторыми новостями о проблемах, с которыми я столкнулся в своей среде Databricks.

После подачи заявки в Microsoft и сотрудничества с их командой в течение примерно недели мы предприняли несколько шагов по устранению неполадок. В конечном итоге и команда хранилища, и команда Databricks сообщили нам, что при запуске ресурсов корневая учетная запись хранения была создана из-за некоторых проблем, в результате чего корневой контейнер не был создан. Следовательно, это привело к проблемам, с которыми мы столкнулись. Поскольку никто не имеет контроля над корневым хранилищем, оно должно создаваться автоматически. Для решения проблем нам необходимо повторно предоставить ресурсы, после чего проблемы были решены.

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