Azure ML:无法通过Python SDK列出/加载已注册数据集
解决Azure ML数据集无法加载到Pandas DataFrame的问题
你的问题大概率和版本冲突、工作区连接错误或数据集未注册有关,按以下步骤排查:
先处理版本兼容问题:你用的
azureml0.2.7是非常老旧的版本,和azureml-core1.46.0严重不兼容,这会导致SDK无法正确识别工作区里的资源。建议卸载旧的azureml包,统一安装和azureml-core1.46.0匹配的版本:pip uninstall azureml -y pip install azureml-dataset-runtime==1.46.0 azureml-core==1.46.0确认工作区连接正确:检查你连接的工作区是不是创建数据集的那个。可以显式指定参数来连接,避免自动配置出错:
from azureml.core import Workspace ws = Workspace( subscription_id="你的订阅ID", resource_group="你的资源组名称", workspace_name="你的工作区名称" )连接后打印
ws.name确认是否和你创建数据集的工作区一致。检查数据集是否已注册:
- GUI创建的数据集:登录Azure ML studio,确认数据集在当前工作区的「数据集」列表里,没有误创建到其他工作区。
- SDK创建的数据集:如果只是用
TabularDatasetFactory或FileDatasetFactory创建了数据集,但没调用register()方法,那这个数据集只是临时对象,不会被保存到工作区。正确的注册代码示例:from azureml.core.dataset import Dataset # 假设你已经创建好dataset对象 dataset.register(workspace=ws, name="你的数据集名称", description="数据集描述")
重新加载并获取数据集:完成以上步骤后,重新运行代码,尝试用以下方式获取并加载到DataFrame:
# 获取单个指定数据集 dataset = Dataset.get_by_name(workspace=ws, name="你的数据集名称") df = dataset.to_pandas_dataframe() # 或获取所有已注册数据集 all_datasets = ws.datasets print(all_datasets.keys()) # 打印所有已注册数据集的名称
如果还是不行,检查Azure ML studio里的数据集状态,确认它处于「已注册」状态,而非草稿或未完成状态。
内容的提问来源于stack exchange,提问作者user20450365
相关产品推荐
相关产品推荐

