首页 > 解决方案 > 在 spark 中加载 pmml(由 sklearn 生成)进行预测但出错

问题描述

我按照指令jpmml-evaluator-spark加载本地 pmml 模型我的代码如下

import java.io.File
import org.jpmml.evaluator.spark._
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql._

// load pmml
val new File(getClass.getClassLoader.getResource("random_forest.pmml").getFile)

// create evaluator 
val evaluator = EvaluatorUtil.createEvaluator(pmmlFile)

我不能直接显示错误信息,所以我把它放在这里

猜测:

我认为有一些原因可能会导致这个问题

1、“jpmml-evaluator-spark”不支持PMML4.3,即使作者说新版本1.1.0已经支持PMML4.3

2、我的“random_forest.pmml”有一些问题,因为这个文件来自别人

笔记:

开发环境

火花2.1.1

斯卡拉 2.11.8

我在本地运行,mac系统版本是OS X El Capitan Version 10.11.6

标签: pmml

解决方案


您正在使用 Apache Spark 2.0、2.1 或 2.2,它们在您的应用程序类路径中添加了 JPMML-Model 库的旧版本(准确地说是 1.2.15)。此问题记录在SPARK-15526中。

解决方案 - 按照 JPMML-Evaluator-Spark 文档中的描述修复您的应用程序类路径(或者,考虑切换到 Apache Spark 2.3.0 或更高版本)。


推荐阅读