You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SageMaker Pipeline参数化预处理脚本文件名遇TypeError求助

解决SageMaker Pipeline参数化预处理脚本路径的问题

问题原因

os.path.join是本地Python路径拼接函数,仅支持字符串/路径类对象,但ParameterString是SageMaker Pipeline的参数对象(属于PipelineVariable类型),并非普通字符串,因此在本地构建流水线时会触发类型错误。

解决方案

使用SageMaker Pipeline原生的Join函数(从sagemaker.workflow.functions导入)完成路径拼接,它支持解析Pipeline参数,会在流水线执行阶段动态处理参数值,而非本地构建时执行。

具体修改步骤

  1. 导入Join函数:
from sagemaker.workflow.functions import Join
  1. 替换原有的os.path.join代码,用Join拼接路径:
step_args = sklearn_processor.run(
    code=Join(on="/", values=[BASE_DIR, data_preprocessing_script]),
    inputs=[
        ProcessingInput(input_name="raw_input_data",
        # 补充剩余的inputs参数...
    ]
)

补充说明

  • Join的on参数为拼接分隔符,这里用"/"适配SageMaker环境的路径规则,效果与os.path.join一致。
  • 若BASE_DIR也是Pipeline参数(如ParameterString类型),可直接放入values列表中,无需额外转换。
  • 建议给data_preprocessing_script设置有效的默认值(如'preprocessing/xxx_preprocessing.py'),避免空值导致路径无效。

内容的提问来源于stack exchange,提问作者Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:14:58