在 Azure ML 上的 jupyter notebook 中加载 csv 并设置参数

Posted

技术标签:

【中文标题】在 Azure ML 上的 jupyter notebook 中加载 csv 并设置参数【英文标题】:load csv and set parameters in jupyter notebook on Azure ML 【发布时间】:2017-12-01 16:07:13 【问题描述】:

我正在使用 Python 3.4 Jupyter 笔记本在 Azure ML 中加载数据集,该数据集作为 Azure ML 项目环境中的数据集存储在云中。但是使用 Azure ML 创建的默认模板,由于混合数据类型错误,我无法加载数据。

from azureml import Workspace
import pandas as pd

ws = Workspace()
ds = ws.datasets['rossmann-train.csv']
df = ds.to_dataframe()

/home/nbuser/anaconda3_23/lib/python3.4/site-packages/IPython/kernel/ma​​in.py:6:DtypeWarning:列 (7) 具有混合类型。在导入时指定 dtype 选项或设置 low_memory=False。

在我的本地环境中,我只是按如下方式导入数据集:

df = pd.read_csv('train.csv',low_memory=False)

但我不确定如何使用 ds 对象在 azure 中执行此操作。

df = pd.read_csv(ds)

pd.DataFrame.from_csv(ds)

提出错误:

OSError: Expected file path name or file-like object, got type

*编辑:ds 对象的更多信息:

In  [1]: type(ds)
Out [1]: azureml.SourceDataset
In  [2]: print (ds)
Out [2]: rossmann-train.csv

【问题讨论】:

【参考方案1】:

首先,根据您的问题,我不确定ds 对象是什么。但我很确定它不是 csv 文件,因为如果是,你会自己处理它,你不会有这个问题。

现在,我不确定pandas是否有处理Azure的原生方式,但是这块documentation表示首先你必须使用他们的包从Azure下载数据,并将其保存到本地文件系统。

但为此,他们假设您下载的数据已经采用csv 格式。如果没有,请使用适当的阅读器(或手动解析)将pandas.DataFrame 的数据制成表格。

【讨论】:

我认为 ds 对象是由我导入的 azureml python 库创建的。我在上面的问题中添加了更多关于 ds 对象的细节。请注意,我正在阅读的数据集在云中,它存储在我的 Azure ML 工作室中的“数据集”部分。该文件绝对是 CSV。【参考方案2】:

根据 azureml 库上的 docs,一种解决方法是将文件作为文本导入,然后将其解析为 csv,但这似乎没有必要,因为数据已被识别为 csv 结构。

text_data = ds.read_as_text()

【讨论】:

以上是关于在 Azure ML 上的 jupyter notebook 中加载 csv 并设置参数的主要内容,如果未能解决你的问题,请参考以下文章

Azure ML Studio ML Pipeline - 异常:未找到临时文件

Azure:部署集成在数据块上的 ML 模型的 Ansible 角色

如何将特定于类的文件夹中的图像上传到 Azure ML Studio 上的 Azure Blob 存储

在 azure ML studio 中安装数据湖存储

将数据表字符串从Azure ML WS转换为实际的Datatable C#Object?

无法在 MS Azure 中的深度学习虚拟机 (DLVM) 上启动 jupyter notebook