【发布时间】:2020-07-19 17:21:28
【问题描述】:
我正在使用 connection_string 访问 Azure Data Lake Gen2 存储,其中大量 Avro 文件由事件中心捕获存储在包含按年/月/日/小时/分钟命名的文件夹的典型目录结构下.我正在使用 azure.storage.filedatalake 包。
首先我得到一个数据湖服务客户端使用:
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。下面是代码截图:
谢谢
【问题讨论】:
标签: azure azure-blob-storage azure-data-lake azure-eventhub azure-sdk-python