Apache spark PySpark加载不合适的模型对象时出现问题
我在玩Apache spark PySpark加载不合适的模型对象时出现问题,apache-spark,pyspark,apache-spark-ml,Apache Spark,Pyspark,Apache Spark Ml,我在玩pyspark.ml.classification模型的save和load函数。我创建了一个RandomForestClassifier的实例,将值设置为几个参数,并调用分类器的save方法。它成功地保存了数据。没有问题 从pyspark.ml.classification导入分类器 #拯救 rf=随机森林分类器() rf.set杂质(‘熵’) rf.setPredictionCol('predme') rf.write().overwrite().save('rf_test')) 然后
pyspark.ml.classification
模型的save
和load
函数。我创建了一个RandomForestClassifier
的实例,将值设置为几个参数,并调用分类器的save
方法。它成功地保存了数据。没有问题
从pyspark.ml.classification导入分类器
#拯救
rf=随机森林分类器()
rf.set杂质(‘熵’)
rf.setPredictionCol('predme')
rf.write().overwrite().save('rf_test'))
然后我尝试重新加载它,但我注意到它的参数没有保存前设置的值。下面是我正在尝试的代码
#加载
rf2=随机森林分类器()
rf2.负载(“rf_测试”)
print(rf2.getinclusion())#返回gini
打印(rf2.getPredictionCol())#返回预测
我想我对这段代码应该如何工作和它实际如何工作的理解有所不同
我该怎么做才能以我保存的方式取回该对象
编辑
我尝试了这里提到的方法。但那没用。这就是我试过的
from pyspark.ml.classification import RandomForestClassifier
rf = RandomForestClassifier()
rf.setImpurity('entropy')
rf.setPredictionCol('predme')
rf.write().overwrite().save('rf_test')
rf2 = RandomForestClassifier
rf2.load('rf_test')
print(rf2.getImpurity())
它返回了以下内容
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: getImpurity() missing 1 required positional argument: 'self'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:GetInjection()缺少1个必需的位置参数:“self”
这不是使用load
方法的方式。它是一个classmethod
,应该在类对象而不是实例上调用,以返回新对象:
rf2=RandomForestClassifier.load('rf_test'))
rf2.getinclusion()
从技术上讲,在实例上调用它也可以,但它不会修改调用者,而是返回一个新的独立对象:
rf2=RandomForestClassifier()。加载('rf\u测试')
但在实践中,应该避免这种构造