Как загрузить обученную модель H20 в Java UDF - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь загрузить обученную модель xgboost для использования в пользовательских UDF, написанных на Java.Файл находится в формате zip и хранится в формате hdf.

Я пытался прочитать его с помощью класса Path, но он не работает.

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

1 Ответ

0 голосов
/ 28 мая 2019

Получил ответ в сообществе S20.

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));
...