2016-02-12 3 views
4

Контекст:Сохранение трубопровода с 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.

+1

Это заслуживает JIRA с запросами на функции (если она еще не существует). Вы всегда можете использовать модель 'mllib', которая доступна для записи и передает данные, но я сомневаюсь, что это будет удовлетворительное решение. – zero323

+0

Странно, потому что почти все модели получили метод 'save' –

ответ

1

Это не может быть сделано с Искры 1.6. Проблема отслеживается here.

Смежные вопросы