Azure ML中AzureDataLakeGen2Datastore无法上传文件的问题咨询
问题:AzureDataLakeGen2Datastore无法使用upload方法上传文件
背景操作
我已将启用DataLake文件系统的Azure存储账户Gen2注册为数据存储,代码如下:
_ = Datastore.register_azure_data_lake_gen2(workspace='xxx', datastore_name='store-identifier', filesystem= 'container', account_name= 'xxx', subscription_id= 'xxx', resource_group= 'xxx', overwrite=1)
尝试通过以下代码向其上传文件:
destination_store = Datastore.get(workspace, 'store-identifier'); destination_store.upload( src='data/', target_path="data_science/", overwrite=True )
但出现报错:
AzureDataLakeGen2Datastore' object has no attribute 'upload'
查看AzureDataLakeGen2Datastore类的说明,得知该类不支持upload方法,需使用Dataset实例上传数据。但尝试了Dataset.Tabular.upload和Dataset.Files.upload,均无法实现该功能。请问后续应如何操作?Azure机器学习服务是否暂不支持此功能?
解决方案
Azure ML的AzureDataLakeGen2Datastore确实不支持直接调用upload方法,你可以通过以下两种方式实现文件上传:
方式一:使用Azure Storage SDK直接操作ADLS Gen2
借助azure-storage-file-datalake库直接操作存储账户,示例代码如下:
from azure.storage.filedatalake import DataLakeServiceClient # 初始化服务客户端,可使用账户密钥或SAS令牌作为凭证 service_client = DataLakeServiceClient(account_url="https://<your-account-name>.dfs.core.windows.net/", credential="<your-credential>") # 获取目标文件系统(对应ADLS Gen2的容器) file_system_client = service_client.get_file_system_client(file_system="container") # 创建目标目录(如果不存在) directory_client = file_system_client.get_directory_client("data_science") directory_client.create_directory() # 上传单个文件,可循环遍历本地目录实现批量上传 file_client = directory_client.get_file_client("sample.txt") with open("./data/sample.txt", "rb") as data: file_client.upload_data(data, overwrite=True)
方式二:通过Azure ML Dataset同步文件到ADLS Gen2
如果需要在Azure ML工作区中管理上传的文件,可以通过创建File Dataset并注册的方式完成同步:
from azureml.core.dataset import Dataset # 从本地路径和目标存储路径创建关联 local_files_path = "./data/*" dataset = Dataset.File.from_files(path=[(destination_store, "data_science/"), local_files_path]) # 注册数据集到工作区,此操作会自动将本地文件上传到指定的ADLS Gen2路径 dataset.register(workspace=workspace, name="adls_uploaded_data", overwrite=True)
这种方式会把本地文件同步到ADLS Gen2的目标路径,同时在工作区生成对应的数据集条目,方便后续在机器学习流程中直接调用。
内容的提问来源于stack exchange,提问作者frictionlesspulley
相关产品推荐
相关产品推荐

