Spark 将新的拟合阶段添加到现有的 PipelineModel 中而无需再次拟合
Spark add new fitted stage to a exitsting PipelineModel without fitting again
我有一个保存的 PipelineModel:
pipe_model = pipe.fit(df_train)
pipe_model.write().overwrite().save("/user/pipe_text_2")
现在我想向这个管道添加一个新的已经适合的 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'
我找到了 但使用此解决方案您需要重新安装整个管道。这就是我要避免的。
因为 PipelineModel
s 对于 PipelieModel
class 是有效的 stage
s,你应该可以使用这个不需要 fit
ing再次:
pipe_model_new = PipelineModel(stages = [pipe_model , pipe_model2])
final_df = pipe_model_new.transform(df1)
我有一个保存的 PipelineModel:
pipe_model = pipe.fit(df_train)
pipe_model.write().overwrite().save("/user/pipe_text_2")
现在我想向这个管道添加一个新的已经适合的 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'
我找到了
因为 PipelineModel
s 对于 PipelieModel
class 是有效的 stage
s,你应该可以使用这个不需要 fit
ing再次:
pipe_model_new = PipelineModel(stages = [pipe_model , pipe_model2])
final_df = pipe_model_new.transform(df1)