2017-02-17 78 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)