使用 PySpark 将模型导出为 PMML

Posted

技术标签:

【中文标题】使用 PySpark 将模型导出为 PMML【英文标题】:Export models as PMML using PySpark 【发布时间】:2016-10-06 06:12:16 【问题描述】:

是否可以?我知道使用 Spark 可以做到这一点。但我在 PySpark 文档中没有找到任何参考资料。那么这是否意味着如果我想这样做,我需要使用一些第三方 python PMML 库编写自定义代码?

【问题讨论】:

目前不支持使用 pyspark 的 PMML。 @eliasah 你对我问题的第二部分有一些见解吗? “这是否意味着如果我想这样做,我需要使用一些第三方 python PMML 库编写自定义代码?” 可能,我无法就您问题的第二部分给出确切答案。这主要是基于意见,但这是我会做的。 感谢您的回答。如果您可以将此作为答案发布,我可以接受它 【参考方案1】:

可以使用JPMML-SparkML 库将 Apache Spark 管道导出到 PMML。此外,该库由JPMML-SparkML-Package 项目以“Spark 包”的形式提供给最终用户。

示例 PySpark 代码:

from jpmml_sparkml import toPMMLBytes
pmmlBytes = toPMMLBytes(sc, df, pipelineModel)
print(pmmlBytes)

【讨论】:

太棒了。会试试这个。 @user1808924 @SameeraR 您是否设法使用提到的 JPMML-SparkML-Package 项目从 PySpark 代码中生成 pmml?我在这一行遇到了java.lang.IllegalArgumentException: Field "label" does not exist. 异常:pipelineModel = pipeline.fit(df) 这适用于 Scala 和 PySpark 代码。

以上是关于使用 PySpark 将模型导出为 PMML的主要内容,如果未能解决你的问题,请参考以下文章

PySpark 将模型预测与未转换的数据对齐:最佳实践

使用 Pyspark 训练随机森林回归模型

如何将 LIBSVM 模型(使用 LIBSVM 保存)读入 PySpark?

如何将 sklearn 管道转换为 pyspark 管道?

使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]

将 Mahout 模型输出导出为 Weka 输入