簡體   English   中英

如何在 PySpark 中覆蓋 Spark ML model?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM