3

我正在使用 Azure 机器学习服务中的笔记本功能。在这个笔记本中,我连接到工作区,检索了相应的数据存储并将我的文件作为文件数据集对象检索。到目前为止一切正常。

from azureml.core import Workspace, Datastore, Dataset
import pandas as pd
import os

workspace = Workspace.from_config()
container="cnt_name"
file_path = 'actual_path'
# get datstore and dataset
datastore = Datastore.get(workspace, container)
datastore_path = [(datastore, file_path )]
dataset = Dataset.File.from_files(datastore_path)

现在我尝试挂载这个 file_dataset

mounted_path = "/tmp/test_dir4"
dataset_mounted = dataset.mount(mounted_path)

一切似乎都很好。快速 ls 给出以下输出:

    ls -ltr /tmp/
    prwx------ 1 azureuser azureuser    0 May 12 13:29 clr-debug-pipe-14801-259046-out
    prwx------ 1 azureuser azureuser    0 May 12 13:29 clr-debug-pipe-14801-259046-in
    d--------- 0 root      root         0 May 12 13:29 test_dir4
    drwx------ 3 azureuser azureuser 4096 May 12 13:29 tmpjrb2tx8g
    -rw------- 1 azureuser azureuser  364 May 12 13:29 tmp5w_ikt6j
    drwx------ 2 azureuser azureuser 4096 May 12 13:29 pyright-14886-W3YT3PTdzoIO

但这是我的问题:挂载的文件夹是由 root 用户挂载的。我无法访问它——既不能从笔记本也不能从外壳。ls 产生典型的错误path not foundpermission denied.

4

1 回答 1

0

你快到了!这dataset.mount(mounted_path)有点令人不安,但它实际上会返回一个mount context,您需要在之后启动它才能使其工作如下:

# mount dataset onto the mounted_path of a Linux-based compute
mount_context = dataset.mount(mounted_path)

mount_context.start()

之后,您可以使用以下代码检查您确实可以访问这些文件:

import os
print(os.listdir(mounted_path))
于 2021-05-20T11:08:53.897 回答