Я использую строку_строки для доступа к Azure хранилищу озера данных Gen2, в котором большое количество файлов Avro было сохранено с помощью захвата концентраторов событий, в типичной структуре каталогов, содержащей папки с именами год / месяц / день / час / мин. Я использую пакет azure .storage.filedatalake.
Сначала я получаю клиент службы Data Lake, используя:
datalake_service_client = DataLakeServiceClient.from_connection_string(connection_string)
И затем я получаю файловые системы в озере:
file_systems = datalake_service_client.list_file_systems()
for file_system in file_systems:
print(file_system.name)
В этом случае существует только одна файловая система, называемая "datalake1". На данный момент я хочу получить доступ ко всем файлам Avro, которые я ожидаю найти в них. Сначала я пытаюсь получить клиент файловой системы:
file_system_client = datalake_service_client.get_file_system_client ("datalake1")
, а затем с помощью метода get_paths:
file_system_client.get_paths()
Возвращает итератор (azure .core.paging.ItemPaged объект), но отсюда я не могу видеть папки и файлы. Я попытался с простым пониманием списка, таким как [x.name for x in file_system_client.get_paths()]
, но получил ошибку StorageErrorException: операция вернула недопустимый статус 'Указанный контейнер не существует.'
Любая идея о том, как получить доступ файлы Avro, следующие за этой процедурой?
РЕДАКТИРОВАТЬ: я использую azure -storage-file-datalake версии 12.0.0. Вот скриншот кода:
Спасибо