如何在pyspark中加载xgboost模型?

问题描述

我在 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 (将#修改为@)