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

SageMaker Pipeline SKLearn预处理步骤缺少sklearn extensions模块报错求助

问题根因

你使用的官方SKLearnProcessor 0.23-1运行环境未预装Amazon官方的sagemaker-scikit-learn-extension依赖包,导致preprocess.py导入模块失败。

可行解决方案

方案一:新增依赖配置自动安装(推荐)

  • 在preprocess.py所在的同级目录新建requirements.txt文件,写入以下内容:
sagemaker-scikit-learn-extension==0.1.0

该版本和你当前使用的scikit-learn 0.23版本完全兼容。

  • 修改pipeline.py中的SKLearnProcessor初始化配置,添加source_dir参数指定代码所在目录,SageMaker执行作业时会自动检测目录下的requirements.txt并安装依赖,修改后的代码示例:
# processing step for feature engineering
sklearn_processor = SKLearnProcessor(
    framework_version="0.23-1",
    instance_type=processing_instance_type,
    instance_count=processing_instance_count,
    base_job_name=f"{base_job_prefix}/sklearn-job-preprocess",
    sagemaker_session=sagemaker_session,
    role=role,
    source_dir=BASE_DIR, # 新增参数,指定preprocess.py和requirements.txt所在目录
)
step_process = ProcessingStep(
    name="PreprocessJobData",
    processor=sklearn_processor,
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="preprocess.py", # 仅保留文件名即可,source_dir已经指定了目录
    job_arguments=["--input-data", input_data],
)

方案二:替换扩展包组件为原生Scikit-learn实现(无需额外安装依赖)

如果不想引入额外依赖,可将preprocess.py中用到的扩展包组件替换为原生sklearn的等价实现:

  • RobustImputer可替换为sklearn.impute.SimpleImputer,配置strategy='constant', fill_value=np.nan参数
  • ThresholdOneHotEncoder可替换为sklearn.preprocessing.OneHotEncoder,配置min_frequency=8参数
  • RobustStandardScaler可替换为sklearn.preprocessing.StandardScaler,鲁棒性要求高的话可改用sklearn.preprocessing.RobustScaler
  • NALabelEncoder可替换为sklearn.preprocessing.LabelEncoder,提前处理空标签即可
  • Header类的功能可自行通过列表索引映射实现

修改后重新提交流水线运行,预处理步骤即可正常执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:30:01