Apache Spark MLlib 模型文件格式
Apache Spark MLlib Model File Format
Apache Spark MLlib 算法(例如,决策树)将模型保存在创建两个目录的位置(例如,myModelPath
),即。 myModelPath/data
和 myModelPath/metadata
。这些路径中有多个文件,这些文件不是文本文件。有一些格式为 *.parquet
的文件。
我有几个问题:
- 这些文件的格式是什么?
- 哪个 file/files 包含实际模型?
- 我可以将模型保存到其他地方吗,例如在数据库中?
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
What are the format of these files?
data/*.parquet
个文件采用 Apache Parquet 列存储格式
metadata/part-*
看起来像 JSON
Which file/files contain actual model?
model/*.parquet
Can I save the model to somewhere else, for example in a DB?
我不知道有任何直接方法,但您可以将模型作为数据框加载,然后将其存储在数据库中:
val modelDf = spark.read.parquet("/path/to/data/")
modelDf.write.jdbc(...)
Apache Spark MLlib 算法(例如,决策树)将模型保存在创建两个目录的位置(例如,myModelPath
),即。 myModelPath/data
和 myModelPath/metadata
。这些路径中有多个文件,这些文件不是文本文件。有一些格式为 *.parquet
的文件。
我有几个问题:
- 这些文件的格式是什么?
- 哪个 file/files 包含实际模型?
- 我可以将模型保存到其他地方吗,例如在数据库中?
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
What are the format of these files?
data/*.parquet
个文件采用 Apache Parquet 列存储格式metadata/part-*
看起来像 JSON
Which file/files contain actual model?
model/*.parquet
Can I save the model to somewhere else, for example in a DB?
我不知道有任何直接方法,但您可以将模型作为数据框加载,然后将其存储在数据库中:
val modelDf = spark.read.parquet("/path/to/data/")
modelDf.write.jdbc(...)