Сохранение Spran Custom Tranformers с использованием библиотеки MLeap - PullRequest
0 голосов
/ 05 февраля 2019

Я использую 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)
...