gpt4 book ai didi

python - 如何正确写入Azure PipelineData?

转载 作者:行者123 更新时间:2023-12-04 12:55:09 25 4
gpt4 key购买 nike

我正在尝试学习 Azure,但运气不佳(还)。所有教程都展示了在“上传”模式下配置时将 PipelineData 用作文件。但是,我收到“FileNotFoundError:[Errno 2]没有这样的文件或目录:''”错误。我很想问一个更具体的问题,但我就是看不出我做错了什么。

from azureml.core import Workspace, Datastore,Dataset,Environment
from azureml.core.compute import ComputeTarget, AmlCompute
from azureml.core.compute_target import ComputeTargetException
from azureml.core.runconfig import RunConfiguration
from azureml.core.conda_dependencies import CondaDependencies
from azureml.pipeline.steps import PythonScriptStep
from azureml.pipeline.core import Pipeline, PipelineData
import os

ws = Workspace.from_config()
datastore = ws.get_default_datastore()

compute_name = "cpucluster"
compute_target = ComputeTarget(workspace=ws, name=compute_name)
aml_run_config = RunConfiguration()
aml_run_config.target = compute_target
aml_run_config.environment.python.user_managed_dependencies = False
aml_run_config.environment.python.conda_dependencies = CondaDependencies.create(
conda_packages=['pandas','scikit-learn'],
pip_packages=['azureml-sdk', 'azureml-dataprep[fuse,pandas]'],
pin_sdk_version=False)

output1 = PipelineData("processed_data1",datastore=datastore, output_mode="upload")
prep_step = PythonScriptStep(
name="dataprep",
script_name="dataprep.py",
source_directory=os.path.join(os.getcwd(),'dataprep'),
arguments=["--output", output1],
outputs = [output1],
compute_target=compute_target,
runconfig=aml_run_config,
allow_reuse=True
)

在 dataprep.py 中,我有以下内容:

import numpy, argparse, pandas
from azureml.core import Run
run = Run.get_context()
parser = argparse.ArgumentParser()
parser.add_argument('--output', dest='output', required=True)
args = parser.parse_args()
df = pandas.DataFrame(numpy.random.rand(100,3))
df.iloc[:, 2] = df.iloc[:,0] + df.iloc[:,1]
print(df.iloc[:5,:])
df.to_csv(args.output)

所以,是的。 pd 应该写入输出,但我的计算集群显示以下内容:

"User program failed with FileNotFoundError: [Errno 2] No such file or directory: ''\".

当我不包含 to_csv() 函数时,集群不会提示

最佳答案

这是一个example对于 PRS。 PipelineData旨在表示从一个步骤到下一步的“ transient ”数据,而 OutputDatasetConfig 旨在捕获数据集的最终状态(因此您会看到沿袭、ADLS 支持等功能)。 PipelineData 始终以类似 {run_id}{output_name} 的文件夹结构输出数据。 OutputDatasetConfig 允许将数据与运行分离,因此它允许您控制数据的放置位置(尽管默认情况下它将生成类似的文件夹结构)。 OutputDatasetConfig 甚至允许将输出注册为数据集,其中摆脱此类文件夹结构是有意义的。来自文档本身:“表示如何复制运行的输出并将其提升为 FileDataset。OutputFileDatasetConfig 允许您指定如何将计算目标上的特定本地路径上传到指定的目的地”。

OutFileDatasetConfig是在管道步骤之间传递数据的控制平面概念。

关于python - 如何正确写入Azure PipelineData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68422680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com