首页 > 解决方案 > 属性错误:管道对象没有属性转换

问题描述

我已经使用 spark ml 管道构建了一个逻辑回归模型并保存了它。我正在尝试将管道应用于新记录集并收到错误。我的管道中有向量汇编器、标准缩放器和逻辑回归模型。

我尝试pipeline.transform并收到以下错误

AttributeError:“管道”对象没有属性“转换”

下面是代码

from pyspark.ml import Pipeline
pipelineModel = Pipeline.load("/user/userid/lr_pipe")
scored_temp = pipelineModel.transform(combined_data_imputed_final)

这是我保存管道的方法

from pyspark.ml.classification import LogisticRegression

vector = VectorAssembler(inputCols=final_features, outputCol="final_features")
scaler = StandardScaler(inputCol="final_features", outputCol="final_scaled_features")
lr = LogisticRegression(labelCol="label", featuresCol="final_scaled_features", maxIter=30)

stages = [vector,scaler,lr]

pipe = Pipeline(stages=stages)

lrModel = pipe.fit(train_transformed_data_1).transform(train_transformed_data_1)
pipe.save("lr_pipe")

我期待它完成所有管道步骤并为记录评分。

标签: apache-sparkpysparkpipelineapache-spark-ml

解决方案


我遇到了同样的问题,在查看源代码后,我发现有一个 PipelineModel 模块我们应该加载到其中。一旦我改变了它,它就可以工作了:D

from pyspark.ml import Pipeline, PipelineModel
pipelineModel = PipelineModel.load("/user/userid/lr_pipe")
scored_temp = pipelineModel.transform(combined_data_imputed_final)

推荐阅读