[英]How to overwrite Spark ML model in PySpark?
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)
當我第一次嘗試保存 model 時,這些行有效。 但是當我想再次將 model 保存到路徑中時,它給出了這個錯誤:
Py4JJavaError:調用 o1695.save 時出錯。 :java.io.IOException:路徑./hdfsData/rfr_model 已經存在。 請使用 write.overwrite().save(path) 來覆蓋它。
然后我嘗試了:
rf_model.write.overwrite().save(rf_model_path)
它給出了:
AttributeError: 'function' object 沒有屬性 'overwrite'
似乎pyspark.mllib
模塊給出了覆蓋 function 但不是pyspark.ml
模塊。 如果我想用新的 model 覆蓋舊的 model,有人知道如何解決這個問題嗎? 謝謝。
您看到的消息是 Java 錯誤消息,而不是 Python 錯誤消息。 您應該先調用write
方法:
rf_model.write().overwrite().save(rf_model_path)
顯然在Scala中它可以使用
rf_model.write.overwrite.save(rf_model_path)
您必須刪除在第一次運行期間已創建的文件夾,然后重新運行您的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.