Kedro数据目录配置Azure Blob Storage数据集出现报错如何解决
问题根因定位
- 核心语法错误:你提供的
catalog.yml配置存在YAML语法违规,load_args下的sep:';'键值对中,冒号后未加空格,不符合YAML语法要求,会直接导致配置解析时抛出缩进/语法类错误,也就是你收到的unexpected unindent报错的直接来源。 - 潜在依赖缺失:使用
abfs协议访问Azure Blob Storage需要额外依赖adlfs包,Docker容器若未预装该依赖也会触发数据集实例化失败。 - 可选配置问题:若修正语法和依赖后仍报错,需排查凭证配置是否匹配、Kedro数据集依赖是否完整。
解决方案
- 修正YAML配置语法,调整后的正确配置如下:
brand_dataset: type: pandas.CSVDataSet filepath: "abfs://container/my_file.csv" credentials: my_creds load_args: sep: ';'
- 安装Azure Blob访问依赖,在Docker容器内执行
pip install adlfs,若要永久生效需将adlfs添加到项目依赖文件(如requirements.txt、pyproject.toml)中,在镜像构建阶段完成安装。 - 若使用Kedro 0.18及以上版本,需单独安装数据集依赖:
pip install kedro-datasets[pandas.CSVDataSet],同样需同步到Docker镜像的依赖安装步骤中。 - 确认
conf/local/credentials.yml中存在对应的my_creds配置,包含Azure存储账号的合法鉴权信息,示例格式参考:
my_creds: account_name: 你的存储账号名 account_key: 你的存储账号密钥
内容的提问来源于stack exchange,提问作者DataEnthusiast
相关产品推荐
相关产品推荐

