PMML model export - RDD-based API

spark.mllib 支持的模型

spark.mllib 支持模型导出到预测模型标记语言 (PMML)。

下表列出了 spark.mllib 可以导出到PMML的模型及其等效的PMML模型。

`spark.mllib` 模型PMML 模型
KMeansModelClusteringModel
LinearRegressionModelRegressionModel (functionName="regression")
RidgeRegressionModelRegressionModel (functionName="regression")
LassoModelRegressionModel (functionName="regression")
SVMModelRegressionModel (functionName="classification" normalizationMethod="none")
Binary LogisticRegressionModelRegressionModel (functionName="classification" normalizationMethod="logit")

示例

要将支持的 模型(见上表)导出到PMML,只需调用 model.toPMML

除了将 PMML 模型导出为 String( model.toPMML 如上例所示),您可以将 PMML 模型导出为其他格式。

有关 API 的详细信息,请参阅 KMeans Scala 文档VectorsScala文档

这里是一个建立 KMeansModel 并以 PMML 格式打印出来的完整示例:

import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors

// Load and parse the data
val data = sc.textFile("data/mllib/kmeans_data.txt")
val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()

// Cluster the data into two classes using KMeans
val numClusters = 2
val numIterations = 20
val clusters = KMeans.train(parsedData, numClusters, numIterations)

// Export to PMML to a String in PMML format
println("PMML Model:\n" + clusters.toPMML)

// Export the model to a local file in PMML format
clusters.toPMML("/tmp/kmeans.xml")

// Export the model to a directory on a distributed file system in PMML format
clusters.toPMML(sc, "/tmp/kmeans")

// Export the model to the OutputStream in PMML format
clusters.toPMML(System.out)
Find full example code at "examples/src/main/scala/org/apache/spark/examples/mllib/PMMLModelExportExample.scala" in the Spark repo.

对于不支持的模型,您将无法找到 .toPMML 方法或 IllegalArgumentException 抛出异常。