4
我有一个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。
这是值得JIRA与功能的要求(如果它不存在)。你总是可以使用'mllib'模型,这个模型是可写的,并且传回数据,但是我怀疑它会是令人满意的解决方案。 – zero323
这很奇怪,因为几乎所有的模型都有'save'方法 –