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'方法 –