未找到JMML Apache Spark org.dmg.pmml.MiningField.setUsageType函数错误

时间:2017-03-16 06:43:40

标签: apache-spark pmml

尝试使用JPmml将spark中的PipeLine模型转换为Pmml时出现以下错误。

java.lang.NoSuchMethodError:org.dmg.pmml.MiningField.setUsageType(Lorg / dmg / pmml / MiningField $ UsageType;)Lorg / dmg / pmml / MiningField;

我添加了有关JPmml的所有依赖项。

// https://mvnrepository.com/artifact/org.jpmml/jpmml-sparkml libraryDependencies + =“org.jpmml”%“jpmml-sparkml”%“1.1.6”

// https://mvnrepository.com/artifact/org.jpmml/pmml-model libraryDependencies + =“org.jpmml”%“pmml-model”%“1.3.6”

// https://mvnrepository.com/artifact/org.jpmml/pmml-evaluator libraryDependencies + =“org.jpmml”%“pmml-evaluator”%“1.3.5”

1 个答案:

答案 0 :(得分:1)

  

我添加了有关JPmml的所有依赖项。

您已添加所有依赖项,但您的应用程序无法看到它们,因为在您的应用程序类路径中,提供了一个Apache Spark ML org.jpmml:pmml-model:1.2.X(方法MiningField#setFieldUsage(MiningField$FieldUsage)),它会遮挡您的{ {1}}(方法org.jpmml:pmml-model:1.3.X):https://issues.apache.org/jira/browse/SPARK-15526

您应该停止重新发明轮子,并使用JPMML-SparkML-Package库。此应用程序类路径/打包问题在其文档中有详细介绍。