Я хочу сохранить модель и в соответствии с документами 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 в учебных заданиях и выводит результаты, основываясь на изученных скрытых функциях?