首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java UDF中加载H20训练好的模型

如何在Java UDF中加载H20训练好的模型
EN

Stack Overflow用户
提问于 2019-05-27 17:15:30
回答 1查看 402关注 0票数 0

我正在尝试加载经过训练的xgboost模型,以便在用Java编写的自定义UDF中使用。文件为zip格式,并存储在hdfs中。

我试着使用Path类来读取它,但它不起作用。

代码语言:javascript
复制
import org.apache.hadoop.fs.Path;

public EasyPredictModelWrapper loadModel(String xgBoostModelFile) {
        if (model == null) {

            synchronized (_lockObject) {
                if (model == null) {
                    log.info("Model has not been loaded, loading ...");
                    try {
                        Path path = new Path(xgBoostModelFile);
                        model = new EasyPredictModelWrapper(MojoModel.load(path)); // Doesn't compile since MojoModel only takes string as an input.
                    } catch (IOException e) {
                        log.error("Got an exception while trying to load xgBoostModel \n", e);
                    }
                }
            }
        }
        return model;
    }

我想要成功加载model.zip

EN

回答 1

Stack Overflow用户

发布于 2019-05-28 09:14:13

在H20 slack社区得到了答案。

代码语言:javascript
复制
FileSystem fs = FileSystem.get(new Configuration());
Path path = new Path(xgBoostModelFile);
FSDataInputStream inputStream = fs.open(path);
MojoReaderBackend mojoReaderBackend = MojoReaderBackendFactory.createReaderBackend(inputStream,CachingStrategy.MEMORY);
model = new EasyPredictModelWrapper(MojoModel.load(mojoReaderBackend));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56323049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档