我想在我的 Azure 机器学习工作区 ( azureml-core==1.12.0) 中注册来自 ADLS Gen2 的数据集。由于服务主体的信息不Python的SDK中所需的文件的.register_azure_data_lake_gen2(),我成功地使用下面的代码来注册ADLS第二代的数据存储:
from azureml.core import Datastore
adlsgen2_datastore_name = os.environ['adlsgen2_datastore_name']
account_name=os.environ['account_name'] # ADLS Gen2 account name
file_system=os.environ['filesystem']
adlsgen2_datastore = Datastore.register_azure_data_lake_gen2(
workspace=ws,
datastore_name=adlsgen2_datastore_name,
account_name=account_name,
filesystem=file_system
)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试注册数据集时,使用
from azureml.core import Dataset
adls_ds = Datastore.get(ws, datastore_name=adlsgen2_datastore_name)
data = Dataset.Tabular.from_delimited_files((adls_ds, 'folder/data.csv'))
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
无法从指定路径加载任何数据。确保路径可访问并包含数据。
ScriptExecutionException是由StreamAccessException. StreamAccessException 是由 AuthenticationException 引起的。'AdlsGen2-ReadHeaders'对于存储上的“[REDACTED]”失败,状态代码为“禁止”(此请求无权使用此权限执行此操作。),客户端请求 ID <CLIENT_REQUEST_ID>,请求 ID <REQUEST_ID>。错误信息:[已编辑] | session_id=<SESSION_ID>
我是否需要启用服务主体才能使其正常工作?使用 ML Studio UI,似乎甚至需要服务主体来注册数据存储。
我注意到的另一个问题是 AMLS 试图访问这里的数据集:
https://adls_gen2_account_name.**dfs**.core.windows.net/container/folder/data.csv而 ADLS Gen2 中的实际 URI …