Я обращаюсь к вам за помощью с некоторыми проблемами, с которыми я сталкиваюсь в своей среде 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.
Отладочная информация:
ошибка в журналах кластера: ''* 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*"
Я попытался загрузить некоторые файлы в DBFS (файловая система Databricks) из пользовательского интерфейса, но выдает ошибку «Контейнер Azure не существует», а также код ошибки 500, но я вижу, что управляемое хранилище есть в группе управляемых ресурсов. .
Та же ошибка возникла, когда я попытался импортировать 3–4 блокнота в общее расположение.
Я пробовал использовать разные типы кластеров и блоков данных во время выполнения, но те же проблемы.
У меня есть доступ администратора к рабочей области блоков данных, и я использую блоки данных уровня «Премиум» (+ элементы управления доступом на основе ролей).
В настоящее время я использую другую учетную запись хранения для своей работы DE, используя учетные данные хранилища. Я могу легко получить доступ к данным в ноутбуках.
Я не знаю, как решить эту проблему, поскольку корневое хранилище находится внутри группы управляемых ресурсов Databricks, и я не могу это контролировать.


Сообщение об ошибке указывает, что указанная файловая система не существует. Это может быть по нескольким причинам:
Возможно, файловая система не смонтирована.
Если вы используете 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 сообщили нам, что при запуске ресурсов корневая учетная запись хранения была создана из-за некоторых проблем, в результате чего корневой контейнер не был создан. Следовательно, это привело к проблемам, с которыми мы столкнулись. Поскольку никто не имеет контроля над корневым хранилищем, оно должно создаваться автоматически. Для решения проблем нам необходимо повторно предоставить ресурсы, после чего проблемы были решены.