Spark ML Word2Vec Проблемы с сериализацией
Версия Spark: 1.6.1
Недавно я провел рефакторинг нашего кода Word2Vec для перехода к мл-моделям на основе DataFrame, но у меня возникла проблема с сериализацией и загрузкой модели локально.
Я могу успешно:
- Подгоните фрейм данных и создайте модель.
- Получить синонимы.
Когда я пытаюсь сериализовать модель локально, векторы не сериализуются, и, следовательно, размер файла слишком мал - около 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, которая включена в комплект поставки? Вы можете сохранить отдельную модель, весь конвейер и т. Д. Я пробовал это, и это сработало.