Apache Spark modellerinin PMML veri biçimine aktarılmasında iki yaklaşım vardır. İlk olarak, Spark ML soyutlama seviyesinde çalışırken, JPMML-SparkML kütüphanesini kullanabilirsiniz. İkinci olarak, buradaki gibi görünen Spark MLlib soyutlama seviyesinde çalışırken, dahili PMMLExportable
özelliğini kullanabilirsiniz.
JPMML-SparkML, sütun adlarını Spark ML veri şemasından DataFrame#schema()
aracılığıyla alır. Ne yazık ki, Spark MLlib için böyle bir seçenek yoktur, bu yüzden "field_ {n}" isminin isimleri ve "target" etiket isimleri sadece korsan kodlanmış isimlerdir.
O JPMML-Model kütüphaneyi kullanan PMML belgedeki alanları yeniden adlandırmak için oldukça kolaydır: Bir PMML dosyasına bu PMML nesne örneğini sıralamakta Eğer
pmmlExportable.toPMML("/tmp/raw-pmml-file")
org.dmg.pmml.PMML pmml = org.jpmml.model.JAXBUtil.unmarshal("/tmp/raw-pmml-file");
org.jpmml.model.visitors.FieldRenamer targetRenamer = new FieldRenamer(FieldName.create("target"), FieldRenamer.create("y"));
targetRenamer.applyTo(pmml);
org.jpmml.model.JAXBUtil.marshal(pmml, "/tmp/final-pmml-file");
, o zaman görebilirsiniz alan "hedef" (ve tüm referansları) "y" olarak yeniden adlandırıldı. Prosedürü özellikleri ile tekrarlayın.