将Statsmodels OLS拟合模型保存至ADLS Blob存储时遇文件未找到错误
解决Statsmodels模型保存到ADLS Blob时的FileNotFoundError问题
问题原因
statsmodels的save()方法不会自动创建不存在的父目录,你的目标路径/mnt/outputs/Models/如果尚未创建,就会触发这个错误——哪怕你是要写入新文件,系统也找不到存放文件的目录。
解决方案
在保存模型前,先手动创建目标目录:
import os import statsmodels.formula.api as smf # 拟合模型 fit = smf.ols(formula=f"Pressure ~ {cat_vars_int} + Speed + dose_time:Speed + Speed:log_curr_speed_time", data=df_train).fit() # 定义路径并创建父目录 path = f'/mnt/outputs/Models/20240406_M2.pickle' os.makedirs(os.path.dirname(path), exist_ok=True) # 自动创建不存在的父目录,已存在则跳过 # 保存模型 fit.save(path)
额外验证点
- 确认
/mnt/outputs/挂载点确实拥有写入权限(你提到能读写其他文件,这一步大概率没问题,但如果创建目录仍报错,可检查挂载的权限配置)。 - 确保
os.path.dirname(path)返回的是正确的父目录路径(这里是/mnt/outputs/Models/),避免路径拼写错误。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

