<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>[1.5.0, 1.6.3]</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jpmml</groupId>
<artifactId>jpmml-evaluator-spark</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
The scala code looks like this:
import org.jpmml.evaluator.Evaluator
import org.jpmml.evaluator.spark._
val fileNamePmml = "mypmml.pmml"
val pmmlFile = new File(fileNamePmml)
val myEvaluator: Evaluator = EvaluatorUtil.createEvaluator(pmmlFile)
val pmmlTransformerBuilder = new TransformerBuilder(myEvaluator)
.withTargetCols()
.withOutputCols()
.exploded(false);
But I am getting this error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/ml/Transformer
at spark.SimpleJpmml$.main(SimpleJpmml.scala:27)
at spark.SimpleJpmml.main(SimpleJpmml.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.ml.Transformer
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
If I add this dependency <artifactId:spark-mllib_2.10,version:2.0.0> to my pom file too, then I get this error:
Exception in thread "main" java.lang.IllegalArgumentException: http://www.dmg.org/PMML-4_3
at org.jpmml.schema.Version.forNamespaceURI(Version.java:61)
at org.jpmml.model.PMMLFilter.updateSource(PMMLFilter.java:121)
at org.jpmml.model.PMMLFilter.startPrefixMapping(PMMLFilter.java:43)
But I can see that Maven has added the pmml-model-1.1.15.jar and pmml-schema-1.1.15.jar to my classpath.
I am wondering is it because of the dependencies conflict Google Guava library, ... with apache spark? or other issue that I am not aware of. Any help would be appreciated. thanks!