You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AzureMachineLearningFileSystem上传遇NotImplementedError及存储路径疑问

问题1:AzureMachineLearningFileSystem上传触发NotImplementedError

对比你的代码和官方示例,几个核心排查点:

  • 缺失recursive参数:官方示例上传文件时明确指定recursive=False,你的代码未传入该参数。AzureMachineLearningFileSystem基于fsspec实现,upload方法的recursive默认值可能因版本存在逻辑歧义,显式指定可避免触发未实现分支。
  • 路径格式不一致:官方用相对路径(如data/upload_files/crime-spring.csv),你用绝对路径(开头带/)。部分fsspec实现对绝对路径的处理逻辑未完全兼容,建议改用相对路径测试。
  • 缺少overwrite参数:虽然非必传,但官方示例传入**{'overwrite': 'MERGE_WITH_OVERWRITE'},若目标路径已存在同名文件,缺少该参数可能触发未定义错误。

修复步骤:

  1. 补全参数后重试:
fs.upload(lpath='/' + path + seq_name + '.csv', 
          rpath='/' + path_target,
          recursive=False,
          **{'overwrite': 'MERGE_WITH_OVERWRITE'})
  1. 确保依赖包为最新稳定版:
pip install --upgrade azureml-fsspec azure-ai-ml
  1. 验证datastore状态:确认azure_churn_lab_datastores存在于指定工作区,且当前身份拥有写入权限。

若以上操作仍报错,再排查平台侧:检查工作区是否正常运行,datastore的连接配置是否有效。

问题2:数据存储路径选择:File Share的code路径 vs Blob容器

建议将数据上传到Blob容器,原因如下:

  • 功能定位不同:File Share的code路径是为存放脚本、配置文件等代码资产设计的,并非大规模数据存储的适配方案。Blob容器是AML专属的数据存储组件,支持批量上传、版本管理、分层存储(冷/归档层)等数据专属功能。
  • 性能与成本优势:Blob容器针对大数据场景优化,支持高吞吐量访问,且存储成本更低(尤其是冷存储层)。File Share基于SMB协议,适合小文件频繁读写,数据量大时性能和成本劣势明显。
  • 工作流兼容性更好:AML的数据处理管道、数据集注册、训练作业等组件对Blob容器的支持更完善。将数据存放在Blob中,可直接通过数据集引用,无需额外路径转换,更易集成到后续ML工作流。
  • 工作区整洁性:代码与数据分离存储,能避免code路径因大量数据文件臃肿,便于版本控制和维护。

内容的提问来源于stack exchange,提问作者Paweł

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:17:23