Spark为出口的PipelineModel添加了新的适合阶段,而不再适合

时间:2018-03-17 14:08:10

标签: apache-spark pyspark apache-spark-mllib pipeline

我有一个已保存的PipelineModel:

pipe_model = pipe.fit(df_train)
pipe_model.write().overwrite().save("/user/pipe_text_2")

现在我想向这个Pipe添加一个新的已经融合的PipelineModel:

pipe_model = PipelineModel.load("/user/pipe_text_2")
df2 = pipe_model.transform(df1)

kmeans = KMeans(k=20)
pipe2 = Pipeline(stages=[kmeans])
pipe_model2 = pipe2.fit(df2)

这是否可能不再适合它?为了获得新的PipelineModel而不是新的Pipeline。理想的事情如下:

pipe_model_new = pipe_model + pipe_model2
TypeError: unsupported operand type(s) for +: 'PipelineModel' and 'PipelineModel'

我找到Join two Spark mllib pipelines together但是使用此解决方案,您需要再次安装整个管道。这就是我试图避免的。

1 个答案:

答案 0 :(得分:2)

由于PipelineModel类对于stage类有效PipelieModel,因此您应该能够使用不再需要fit的内容:

pipe_model_new = PipelineModel(stages = [pipe_model , pipe_model2])
final_df = pipe_model_new.transform(df1)