Azure 机器学习数据集创建永久挂起
我正在尝试使用 Azure ML 从数据存储中创建一个 Dataset
,但是执行过程一直卡住,永远无法完成。
这是我根据微软文档调整后的代码:
import azureml.core
from azureml.core import Workspace, Datastore, Dataset
ws = Workspace.from_config()
datastore = Datastore.get(ws, datastore_name='blobs')
data_path=[(datastore,"contacts.csv")]
Dataset.File.from_files(path=data_path) # <-- This method never finishes
从这里可以看到,命令一直没有完成:
存储中只有一个测试文件 contacts.csv
。这个存储是一个 Blob 容器,但我也尝试过数据湖(DSL)容器,结果一样。看起来这个问题和另一个问题有点类似。
我必须补充说明,出站规则已配置为使用私有端点。
在我排查问题的过程中,我确认网络连接到存储是正常的——不仅通过在 Azure ML 实例内使用 SSH 测试并解析到一个私有 IP,还使用其他 SDK,比如 Datastore.download()
方法。
在这里,我展示了如何通过 download
方法从同一个数据存储中访问文件。这告诉我网络和身份验证配置是正确的,可能是我的 Dataset
代码出了问题?基础设施是一样的,只是代码稍微改了一下。
import os
import azureml.core
from azureml.core import Workspace, Datastore, Dataset
ws = Workspace.from_config()
datastore = Datastore.get(ws, datastore_name='blobs')
datastore.download(target_path="./output", prefix="contacts.csv", overwrite=False)
arr = os.listdir('./output')
print(arr)
file = open("./output/contacts.csv", "r").read()
print(file)
1 个回答
0
一个出站受限的AML架构不允许未经批准的外部连接。
AML会尝试动态下载所需的依赖项,但如果没有添加一个完整域名的出站规则,这个过程就会失败。