首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure : OSError:无法将文件保存到不存在的目录中

Azure : OSError:无法将文件保存到不存在的目录中
EN

Stack Overflow用户
提问于 2022-10-22 11:29:44
回答 1查看 110关注 0票数 0

我使用Azure ML Studio通过创建数据资产test5从csv文件中读取数据,并将数据写入当前工作目录的csv文件中(这是失败的)。我正在提交一个使用Compute ClusterCustom Environment的作业,并遵循教程中的说明。

我在笔记本上写了代码如下:

代码语言:javascript
运行
复制
 from azure.ai.ml import MLClient
 from azure.identity import DefaultAzureCredential
 credential = DefaultAzureCredential()
 ml_client = MLClient(
     credential=credential,
     subscription_id="abc",
     resource_group_name="xyz",
     workspace_name="pqr",
 )
 from azure.ai.ml import command
 from azure.ai.ml import Input
    
 registered_model_name = "read_data"
 env_name = "docker-context"
 job = command(inputs=dict(data=Input(type="uri_file",path="azureml:test5:1",),
         registered_model_name=registered_model_name
     ),   
     code="./src/",g
     command="python main.py --data ${<!-- -->{inputs.data}} --registered_model_name ${<!-- -->{inputs.registered_model_name}}",
     environment="docker-context:10",
     compute="amlcluster01",
     experiment_name="read_data1",
     display_name="read_data2",
     )
 ml_client.create_or_update(job)

这个很好用。main.py文件的内容是:

代码语言:javascript
运行
复制
 import os
 import argparse
 import pandas as pd
    
 def main():
     print("Hello")
      # input and output arguments
     parser = argparse.ArgumentParser()
     parser.add_argument("--data", type=str, help="path to input data")
     parser.add_argument("--registered_model_name", type=str, help="model name")
     args = parser.parse_args()
     print(" ".join(f"{k}={v}" for k, v in vars(args).items()))
     print("input data:", args.data)
     read_data=pd.read_csv(args.data)
     #read_data=pd.read_parquet(args.data, engine='pyarrow')
     #credit_df = pd.read_excel(args.data, header=1, index_col=0)
     print(read_data)
     read_data.to_csv(r'/home/azureuser/cloudfiles/code/Users/Ankit19.Gupta/azureml-in-a-day/src/file3.csv')
    
     print("Hello World !")
    
 if __name__ == "__main__":
     main()

在这里,除了read_data.to_csv(r'/home/azureuser/cloudfiles/code/Users/Ankit19.Gupta/azureml-in-a-day/src/file3.csv')之外,所有代码行都工作得很好。

它将错误消息显示为:OSError: Cannot save file into a non-existent directory:/home/azureuser/cloudfiles/code/Users/Ankit19.Gupta/azureml-in-a-day/src

请任何人帮助我如何将数据存储到csv文件中,通过作业将其保存到我当前的工作目录。任何帮助都将不胜感激。

编辑:当我用read_data.to_csv(r'/home/azureuser/cloudfiles/code/Users/Ankit19.Gupta/azureml-in-a-day/src/file3.csv')替换read_data.to_csv(r'/home/azureuser/cloudfiles/code/Users/Ankit19.Gupta/azureml-in-a-day/src/file3.csv')时,msamsami的提到了答案中的代码

代码语言:javascript
运行
复制
file_path = os.path.join(os.getcwd(), 'file3.csv')
read_data.to_csv(file_path)
print(f"read_data saved to {file_path}")

我得到上述打印语句的以下输出:

代码语言:javascript
运行
复制
read_data saved to /mnt/azureml/cr/j/28bec1ee580a400894b48e5d8576f6ca/exe/wd/file3.csv
EN

回答 1

Stack Overflow用户

发布于 2022-10-22 11:40:50

错误告诉您,您希望将CSV保存到的目录不存在。因此,为了确保一切都是正确的,您应该确保在"Ankit19.Gupta“下有一个”每天都有azureml“文件夹,在”azureml“下的"src”也是这样。

此外,尝试如下:

代码语言:javascript
运行
复制
import os

...

file_path = os.path.join(os.getcwd(), 'file3.csv')
read_data.to_csv(file_path)

print(f"read_data saved to {file_path}")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74163156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档