问题描述
我在 pyspark 中使用 xgboost4j-0.90
。我有一个使用交叉验证生成的模型,我想知道在保存后加载它的正确方法是什么。
这是我保存它的方法:
import sys
from sparkxgb import XGBoostClassificationModel
path = 'models_prod'
os.mkdir(path)
cvModel.bestModel.save(os.path.join(sys.argv[1],'model_prod_{}.model'.format(datetime.Now().strftime('%Y-%m-%d'))))
但是当我尝试加载它时...
from datetime import datetime
XGBoostClassificationModel.load(os.path.join(sys.argv[1],'model_prod_{}.model'.format(datetime.Now().strftime('%Y-%m-%d'))))
我收到此错误:
TypeErrorTraceback (most recent call last)
<ipython-input-76-9c37de36b710> in <module>()
----> 1 sparkxgb.XGBoostClassificationModel.load(os.path.join(sys.argv[1],'model_prod_{}.model'.format(datetime.Now().strftime('%Y-%m-%d'))))
/opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6626826/lib/spark/python/pyspark/ml/util.py in load(cls,path)
360 def load(cls,path):
361 """Reads an ML instance from the input path,a shortcut of `read().load(path)`."""
--> 362 return cls.read().load(path)
363
364
/tmp/spark-ddebc1de-ff0b-4a61-9015-9eed1d020da0/userFiles-e8428975-a085-42ff-ae70-b92e722822ac/sparkxgb.zip/sparkxgb/util.py in read(cls)
26 def read(cls):
27 """Returns an XGBoostReader instance for this class."""
---> 28 return XGBoostReader(cls)
29
30
/tmp/spark-ddebc1de-ff0b-4a61-9015-9eed1d020da0/userFiles-e8428975-a085-42ff-ae70-b92e722822ac/sparkxgb.zip/sparkxgb/util.py in __init__(self,clazz)
36 def __init__(self,clazz):
37 self._clazz = clazz
---> 38 self._jread = self._load_java_obj(clazz).read()
39
40 @classmethod
TypeError: 'JavaPackage' object is not callable
谁能告诉我如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)