我试图学习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()函数时,集群不会抱怨
这是PRS的example。 PipelineData用于表示从一个步骤到下一个步骤的“瞬态”数据,而OutputDatasetConfig用于捕获数据集的最终状态(因此您可以看到沿袭、ADL支持等特性)。PipelineData总是以类似{run_id}{output_name}的文件夹结构输出数据。OutputDatasetConfig允许将数据与运行分离,因此它允许您控制将数据放在何处(尽管默认情况下它将生成类似的文件夹结构)。OutputDatasetConfig甚至允许将输出注册为数据集,这样就可以摆脱这种文件夹结构。来自文档本身:“表示如何复制运行的输出并将其升级为FileDataset。OutputFileDatasetConfig允许您指定如何将计算目标上的特定本地路径上载到指定目标”
OutFileDatasetConfig是一个控制平面概念,用于在管道步骤之间传递数据
相关问题 更多 >
编程相关推荐