Контекст:Сохранение трубопровода с DecisionTreeModel Спарк ML
У меня есть Спарк ML трубопровод, который содержит VectorAssembler, StringIndexer, и DecisionTreeClassifier. Используя этот конвейер, я могу успешно подгонять модель и преобразовывать свой кадр данных. Я хотел бы сохранить эту модель для использования в будущем, но я получаю следующее сообщение об ошибке:
Pipeline write will fail on this Pipeline because it contains a stage which does not implement Writable.
Non-Writable stage: dtc_9c04161ed2d1 of type class org.apache.spark.ml.classification.DecisionTreeClassificationModel
То, что я пытался:
val pipeline = new Pipeline().setStages(Array(assembler, labelIndexer, dt))
val model = pipeline.fit(dfIndexed)
model.write.overwrite().save("test/model/pipeline")
Это работает правильно, когда я удалить классификатор (т.е. дт). Есть ли способ сохранить модель DecisionTreeClassifier?
Мои данные состоят из некоторых индексированных категориальных значений, которые я должен вернуть в исходную форму (я знаю, что это потребует использования IndexToString). Я использую Spark 1.6.
Это заслуживает JIRA с запросами на функции (если она еще не существует). Вы всегда можете использовать модель 'mllib', которая доступна для записи и передает данные, но я сомневаюсь, что это будет удовлетворительное решение. – zero323
Странно, потому что почти все модели получили метод 'save' –