使用Azure Datastore在Python中从Azure ML Studio读写CDL Gen2 CSV文件
Azure ML Studio 通过Datastore读写ADLS Gen2 CSV文件
所需安装的Azure库
执行以下命令安装依赖:
pip install azureml-core azure-storage-file-datalake pandas
azureml-core:Azure ML Studio核心操作库,用于连接工作区与Datastoreazure-storage-file-datalake:ADLS Gen2底层存储操作支持库pandas:可选,用于CSV数据的解析与处理
Python示例代码
1. 连接Azure ML工作区与ADLS Gen2 Datastore
from azureml.core import Workspace, Datastore # 加载工作区(优先读取本地config.json,也可手动传入subscription_id等参数) ws = Workspace.from_config() # 获取已在AML Studio配置好的ADLS Gen2 Datastore adls_gen2_ds = Datastore.get(ws, datastore_name="your_datastore_name")
2. 读取ADLS Gen2中的CSV文件
import pandas as pd from azureml.data.datapath import DataPath # 指定Datastore上的文件路径 file_path = DataPath(datastore=adls_gen2_ds, path_on_datastore="raw_data/source.csv") # 读取CSV到DataFrame with file_path.open() as f: df = pd.read_csv(f) print("读取完成,数据预览:") print(df.head())
3. 将数据写入ADLS Gen2为CSV文件
# 指定目标文件路径 target_path = DataPath(datastore=adls_gen2_ds, path_on_datastore="processed_data/result.csv") # 写入CSV(关闭索引以减少冗余) with target_path.open(mode="w") as f: df.to_csv(f, index=False) print("文件已成功写入ADLS Gen2")
ADLS Gen2相关变更与关键信息
核心变更点
- 协议替换:Gen1的
adl://协议替换为Gen2的abfss://协议,支持分层命名空间(HNS),兼容HDFS语义 - 库更新:原Gen1依赖的
azure-datalake-store库不再推荐,改用azure-storage-file-datalake处理底层存储操作 - 权限调整:ADLS Gen2依赖Storage Blob Data角色(如
Storage Blob Data Contributor),而非传统的存储账户管理员权限,需确保AML工作区的认证主体(服务主体/托管身份)拥有对应路径的权限
实用配置与学习要点
- Datastore配置:在AML Studio的「数据」->「数据存储」中新建ADLS Gen2类型的存储,支持账户密钥、服务主体、托管身份三种认证方式
- 文件操作最佳实践:优先使用AML的
DataPath或Dataset进行读写,便于后续的实验追踪与版本管理,避免直接调用底层存储SDK - 故障排查:若出现权限错误,检查认证主体的角色分配是否覆盖目标容器或路径,确认分层命名空间已启用(Gen2默认启用)
内容的提问来源于stack exchange,提问作者Neo
相关产品推荐
相关产品推荐

