2016-02-12 96 views
4

语境管道:保存与DecisionTreeModel星火ML

我有一个Spark 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") 

这正常工作,当我删除分类(即DT)。有没有保存DecisionTreeClassifier模型的方法?

我的数据由一些索引的分类值组成,我必须映射回其原始形式(我知道这将需要使用IndexToString)。我正在使用Spark 1.6。

+1

这是值得JIRA与功能的要求(如果它不存在)。你总是可以使用'mllib'模型,这个模型是可写的,并且传回数据,但是我怀疑它会是令人满意的解决方案。 – zero323

+0

这很奇怪,因为几乎所有的模型都有'save'方法 –

回答

1

这不能从Spark 1.6开始。该问题正在追踪here