如何加载PMML模型?

P. *_*dew 7 scala pmml apache-spark apache-spark-mllib

我按照PMML模型导出的说明- spark.mllib来创建K-means模型.

val numClusters = 10
val numIterations = 10
val clusters = KMeans.train(data, numClusters, numIterations)
// Save and load model: export to PMML
println("PMML Model:\n" + clusters.toPMML("/kmeans.xml"))
Run Code Online (Sandbox Code Playgroud)

但我不知道如何加载PMML.

我尝试着

val sameModel = KMeansModel.load(sc, "/kmeans.xml")
Run Code Online (Sandbox Code Playgroud)

并出现:

org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/kmeans.xml/metadata
Run Code Online (Sandbox Code Playgroud)

任何的想法?

最好的祝福

ste*_*ino 1

如文档中所述(对于您似乎感兴趣的版本 - 1.6.1 以及最新的可用版本 - 2.1.0),Spark 仅支持导出到 PMML。该load方法实际上期望检索以 Spark 自己的格式保存的模型,这就是该load方法期望存在某个路径以及抛出异常的原因。

如果您使用 Spark 训练了模型,那么您可以稍后再save进行load训练。

如果您需要加载尚未在 Spark 中训练并已保存为 PMML 的模型,您可以使用jpmml-spark来加载和评估它。