我正在尝试将管道从 Microsoft 机器学习工作室经典迁移到 Azure 机器学习。我的管道实际上在 Machine Learning Studio Classic 上运行,由以下经典和自定义组件组成。输入数据有 6 个,是使用导入数据组件从 Blob 存储帐户收集的。它们主要是 csv 文件,我使用一个自定义组件(R 脚本)来清理输入数据。这是因为“执行 R 脚本”只允许 2 个输入,但我需要 6 个输入,因为我有 6 个输入文件。之后,使用称为导出数据的组件将 csv 文件写入同一 Blob 存储帐户,但写入另一个文件夹中。我想在 Azure 机器学习中构建相同的管道,我可以在同一管道中使用自定义组件和默认组件吗?
如果我尝试使用经典组件创建管道,显然我无法使用我的自定义组件(又名 R 脚本),并且当我尝试创建自定义管道时,我无法使用经典组件,并且显然无法导出我的自定义组件清理输入数据后创建自定义管道时的数据。
有多种方法可以处理这种情况:
在这里,您可以从 6 个文件创建单个数据资产,并在如下所示的组件中使用它。
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
run = get_current_run()
ws = run$experiment$workspace
dataset1 = azureml$core$dataset$Dataset$get_by_name(ws, "output_dataset_name")
dataset2 = azureml$core$dataset$Dataset$get_by_name(ws, "sql")
#load all your data asset
#clean your data
dataframe1 <- dataset$to_pandas_dataframe()
# Return datasets as a Named List
return(list(dataset1=dataframe1, dataset2=dataframe2))
}
.zip
文件创建数据资产。这些文件在运行时在 ./Script Bundle
下提取并可用。使用下面的代码来读取您的文件。azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
mydataset<-read.csv("./Script Bundle/mydatafile.csv",encoding="UTF-8");
# clean and return
return(list(dataset1=mydataset, dataset2=dataframe2))
}
要使用
zip
文件创建数据资产,请按照 这些步骤。
请参阅此文档,了解有关 R 组件及其用法的更多信息。
您还可以参考此 github 文档,了解如何将 csv 文件加载为表格数据资产、清理它们并将其注册为数据资产,而不需要导出数据组件。