如何在PySpark中覆盖Spark ML模型?

Ver*_*eng 6 machine-learning apache-spark pyspark apache-spark-ml apache-spark-mllib

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)
Run Code Online (Sandbox Code Playgroud)

当我第一次尝试保存模型时,这些线条起作用了.但是当我想再次将模型保存到路径中时,它会出现以下错误:

Py4JJavaError:调用o1695.save时发生错误.:java.io.IOException:Path ./hdfsData/rfr_model已存在.请使用write.overwrite().save(path)来覆盖它.

然后我尝试了:

rf_model.write.overwrite().save(rf_model_path)
Run Code Online (Sandbox Code Playgroud)

它给了:

AttributeError:'function'对象没有属性'overwrite'

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

use*_*411 14

您看到的消息是Java错误消息,而不是Python消息.你应该先调用这个write方法:

rf_model.write().overwrite().save(rf_model_path)
Run Code Online (Sandbox Code Playgroud)