Apache Spark MLlib 模型文件格式

7

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

我有几个问题:

  • 这些文件的格式是什么?
  • 哪个/哪些文件包含实际的模型?
  • 我可以将模型保存到其他地方,例如数据库吗?
1个回答

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 我可以将模型保存在其他地方,例如数据库中吗?
我不知道有任何直接的方法,但您可以将模型作为数据框加载,然后将其存储在数据库中。
val modelDf = spark.read.parquet("/path/to/data/")
modelDf.write.jdbc(...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接