2017-02-17 31 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 (путь), чтобы перезаписать его.Модель ovewrite не работает для регрессии Randomforest pyspark ml

Тогда я попробовал:

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

Он дал: AttributeError: 'функция' объект не имеет атрибута 'перезапись'

кажется модуль pyspark.mllib дает функцию перезаписи, но не pyspark. мл. Кто-нибудь знает, как это решить, если я хочу перезаписать старую модель новой модели? Благодарю.

ответ

4

Сообщение, которое вы видите, представляет собой сообщение об ошибке Java, а не Python. Сначала необходимо позвонить по методу write:

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