Apache Spark MLlib模型文件格式

时间:2015-08-12 18:47:06

标签: apache-spark apache-spark-mllib

Apache Spark MLlib算法(例如,决策树)将模型保存在创建两个目录的位置(例如,myModelPath),即。 myModelPath/datamyModelPath/metadata。这些路径中有多个文件,而不是文本文件。有一些格式为*.parquet的文件。

我有几个问题:

  • 这些文件的格式是什么?
  • 哪些文件/文件包含实际型号?
  • 我可以将模型保存到其他地方,例如在DB中吗?

1 个答案:

答案 0 :(得分:5)

Spark> = 2.4

由于Spark 2.4提供了格式不可知的编写器接口,所选模型已经实现了这些。例如LinearRegressionModel

val lrm: org.apache.spark.ml.regression.LinearRegressionModel = ???
val path: String = ???

lrm.write.format("pmml").save(path)

将创建一个包含PMML表示的单个文件的目录。

Spark< 2.4

  

这些文件的格式是什么?

  • data/*.parquet个文件采用Apache Parquet列式存储格式
  • metadata/part-*看起来像JSON
  

哪些文件/文件包含实际型号?

  • model/*.parquet
  

我可以将模型保存到其他地方,例如在DB中吗?

我不知道任何直接方法,但您可以将模型作为数据框加载并在之后将其存储在数据库中:

val modelDf = spark.read.parquet("/path/to/data/")
modelDf.write.jdbc(...)