如何从Azure ML中注册的容器示例读取csv文件

0s7z1bwu  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(145)

我在Azure ML的Datastore部分注册了一个容器示例,名为my_container。在这个容器中,我有一个文件夹data,这个文件夹包含my_data.csv文件。我想用SDK v2来读。
我试着用这个代码:

target_datastore = Datastore.get(workspace=workspace, datastore_name=r'my_container')
tbl = mltable.from_delimited_files(paths=(target_datastore, 'data/my_data.csv'))

字符串
但是没有用。事实上,微软现在使用的mltable与SDK v1中的Dataset.Tabular功能相同。但似乎不是这样。
我也试着用这段代码来解决这个问题:

target_datastore = Datastore.get(workspace=workspace, datastore_name=r'my_container')
ds = ml_client.data._get_latest_version(name='my_data.csv')


但是这个也不起作用,因为mlclient.data没有以任何方式利用数据存储。
您是否有使用SDK v2从AML阅读文件的经验?
先谢谢你。

o2gm4chl

o2gm4chl1#

根据这个场景,我在容器中上传了一个csv文件。

要读取csv文件,可以使用azureml.core中的Dataset类
下面是一个示例代码片段,您可以使用它来读取文件:

from  azureml.core  import  Datastore,Dataset,Workspace

workspace = Workspace.from_config()
datastore = Datastore.get(workspace=workspace, datastore_name='workspaceblobstore')
path = datastore.path('data/my_data.csv')
dataset = Dataset.Tabular.from_delimited_files(path)
df = dataset.to_pandas_dataframe()
df

字符串
使用上面的方法你可以成功读取csv文件。

使用SDK v2时,可以使用以下代码片段:

import mltable

path = {
    'file': 'azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<wsname>/datastores/<name>/paths/<folder>/<file>.csv'
}

tbl = mltable.from_delimited_files(paths=[path])
df = tbl.to_pandas_dataframe()
df.head()


通过上面的代码,你可以使用mltable从容器中读取csv文件。

更多详情请参考此documentation

相关问题