Сохранить модель ALS в MLlib - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу сохранить модель и в соответствии с документами Spark ML могу сделать это следующим образом для рекомендательной системы: ССЫЛКА НА ДОКУМЕНТЫ

import os, tempfile 
path = tempfile.mkdtemp() 
best_model.save(sc, path)

Появляется эта ошибка:

TypeError: save() takes 2 positional arguments but 3 were given

Я удаляю контекст искры, и модель сохраняется в нужном пути. Однако я не могу загрузить его с помощью:

from pyspark.mllib.recommendation import MatrixFactorizationModel
loaded_model = MatrixFactorizationModel.load(sc=sc,path = '/project/model')

Ошибка:

An error occurred while calling z:org.apache.spark.mllib.recommendation.MatrixFactorizationModel.load.
: org.json4s.package$MappingException: Did not find value which can be converted into java.lang.String

В чем проблема? Я делаю именно то, что сказано в документации, однако метод сохранения странным образом не в apache .spark.mllib.recommendation.MatrixFactorizationModel. Должен ли я попробовать импортировать сохранение из линейной регрессии или как?

Я обнаружил это при переполнении стека:

from pyspark.ml.recommendation import ALSModel
loaded_model = ALSModel.load('/project/model')

И во время написания этого я нашел решение. Но у меня огромный вопрос, почему это так? Официальные примеры странно используют MatrixFactorizationModel с ALS. Также s c используется в примерах для загрузки / сохранения моделей. Почему?

РЕДАКТИРОВАТЬ: Я прав, что ALS вызывает MatrixFactorizationModel в учебных заданиях и выводит результаты, основываясь на изученных скрытых функциях?

...