Apache Spark MLlib模型文件格式

Sou*_*nti 6 apache-spark apache-spark-mllib

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

我有几个问题:

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

zer*_*323 5

火花> = 2.4

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

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

lrm.write.format("pmml").save(path)
Run Code Online (Sandbox Code Playgroud)

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

火花<2.4

这些文件的格式是什么?

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

哪些文件包含实际模型?

  • model/*.parquet

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

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

val modelDf = spark.read.parquet("/path/to/data/")
modelDf.write.jdbc(...)
Run Code Online (Sandbox Code Playgroud)