Spark ML Word2Vec Проблемы с сериализацией

Версия Spark: 1.6.1

Недавно я провел рефакторинг нашего кода Word2Vec для перехода к мл-моделям на основе DataFrame, но у меня возникла проблема с сериализацией и загрузкой модели локально.

Я могу успешно:

  1. Подгоните фрейм данных и создайте модель.
  2. Получить синонимы.

Когда я пытаюсь сериализовать модель локально, векторы не сериализуются, и, следовательно, размер файла слишком мал - около 2 КБ для 10 ГБ данных.

        FileOutputStream fo = new FileOutputStream("/tmp/word2vec");
        ObjectOutputStream so = new ObjectOutputStream(fo);
        so.writeObject(word2VecModel);
        so.flush();
        so.close();
        logger.info("Word2Vec model saved");

При загрузке модели и вызове функции findSynonyms() получается следующее исключение:

java.lang.NullPointerException at org.apache.spark.ml.feature.Word2VecModel.transform (Word2Vec.scala: 224)

Есть ли способ сохранить модель локально?

1 ответ

Вы пытались использовать функциональность Model Persistence, которая включена в комплект поставки? Вы можете сохранить отдельную модель, весь конвейер и т. Д. Я пробовал это, и это сработало.

Другие вопросы по тегам