2017-02-17 51 views
2
from pyspark.ml.regression import RandomForestRegressionModel 
rf = RandomForestRegressor(labelCol="label",featuresCol="features", numTrees=5, maxDepth=10, seed=42) 
rf_model = rf.fit(train_df) 
rf_model_path = "./hdfsData/" + "rfr_model" 
rf_model.save(rf_model_path) 

当我第一次尝试保存模型时,这些行工作。但是当我想再次将模型保存到路径中时,它给出了此错误: Py4JJavaError:调用o1695.save时发生错误。 :java.io.IOException:路径./hdfsData/rfr_model已经存在。请使用write.overwrite()。save(path)来覆盖它。模型ovewrite不适用于Randomforest回归pyspark ml

然后我尝试:

rf_model.write.overwrite().save(rf_model_path) 

它给了: AttributeError的: '功能' 对象有没有属性 '覆盖'

看来pyspark.mllib模块提供覆盖功能,但不pyspark。 ml模块。如果我想用新模型覆盖旧模型,任何人都知道如何解决这个问题?谢谢。

回答

4

您看到的消息是Java错误消息,而不是Python错误消息。您应首先拨打write方法:

rf_model.write().overwrite().save(rf_model_path)