Я использую Mleap для производства моделей, и у меня есть один случай, когда Spark MLLib имеет собственный Transformer in Pipeline (путем расширения Transformer с помощью DefaultParamsWritable).Я хочу сохранить это как часть моего пакета MLeap, чтобы использовать его для вывода модели.
Доступна ли сериализация для пользовательских трансформаторов с библиотекой MLeap?
Я использовал инструкцию, представленную на следующей странице:
https://github.com/combust/mleap-docs/blob/master/mleap-runtime/custom-transformer.md
Не уверен, как mleap lib связывает пользовательский преобразователь, нужно ли нам писать целую логику и помещать ее в классы MyCustomTrasnformer, MyCustomTrasnformerOps, MyCustomTrasnformerModel или мы можем использовать существующий класс spark mllib?Любой пример из конца в конец или кодовая база действительно помогут.(Пример StringMap не дает фактического варианта использования)
Версия Spark Mllib: 2.3.0 Версия Mleap: 0.13.0
Exception in thread "main" java.util.NoSuchElementException: key not found: myCustomTransformation
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:59)
at ml.combust.bundle.BundleRegistry.model(BundleRegistry.scala:111)
at ml.combust.bundle.serializer.ModelSerializer$$anonfun$readWithModel$2.apply(ModelSerializer.scala:105)
at ml.combust.bundle.serializer.ModelSerializer$$anonfun$readWithModel$2.apply(ModelSerializer.scala:104)
at scala.util.Success$$anonfun$map$1.apply(Try.scala:237)
at scala.util.Try$.apply(Try.scala:192)
at scala.util.Success.map(Try.scala:237)
at ml.combust.bundle.serializer.ModelSerializer.readWithModel(ModelSerializer.scala:103)
at ml.combust.bundle.serializer.NodeSerializer$$anonfun$read$2.apply(NodeSerializer.scala:102)
at ml.combust.bundle.serializer.NodeSerializer$$anonfun$read$2.apply(NodeSerializer.scala:101)
at scala.util.Success.flatMap(Try.scala:231)
at ml.combust.bundle.serializer.NodeSerializer.read(NodeSerializer.scala:100)
at ml.combust.bundle.serializer.GraphSerializer$$anonfun$readNode$2.apply(GraphSerializer.scala:57)
at ml.combust.bundle.serializer.GraphSerializer$$anonfun$readNode$2.apply(GraphSerializer.scala:57)
at scala.util.Success.flatMap(Try.scala:231)