Kryo java.lang.UnsportedOperationException

Я пытаюсь использовать Kryo в spark для класс SAMRecord, но во время выполнения отображается ошибка. Я не понимаю, что означает эта ошибка, кто-нибудь может объяснить? Что мне нужно изменить, чтобы Kryo работал с этим? Проблема связана с переменной-членом mAlignmentBlocks типа List<AlignmentBlock>. Есть ли у Kryo проблемы с такими списками?

Обратите внимание, что я зарегистрировал и AlignmentBlock, и SAMRecord, используя следующий код:

kryo.register(classOf[AlignmentBlock])
kryo.register(classOf[SAMRecord])

И ошибка, которую я получаю, заключается в следующем:

com.esotericsoftware.kryo.KryoException: java.lang.UnsupportedOperationException Трассировка сериализации: mAlignmentBlocks (htsjdk.samtools.SAMRecord) в com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.read(FieldSerializer.java:626) в com.esotericsoftware. kryo.serializers.FieldSerializer.read(FieldSerializer.java:221) на com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:729) на com.twitter.chill.Tuple2Serializer.read(TupleSerializers.scala:42) на com .twitter.chill.Tuple2Serializer.read(TupleSerializers.scala:33) в com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:729) в org.apache.spark.serializer.KryoDeserializationStream.readObject(KryoSerializer.scala:228) ) в org.apache.spark.serializer.DeserializationStream.readValue(Serializer.scala:171) в org.apache.spark.serializer.DeserializationStream$$anon$2.getNext(Ser ializer.scala:201) в org.apache.spark.serializer.DeserializationStream$$anon$2.getNext(Serializer.scala:198) в org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73) в scala .collection.Iterator$$anon$13.hasNext(Iterator.scala:371) в scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) в org.apache.spark.util.CompletionIterator.hasNext(CompletionIterator .scala:32) в org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39) в org.apache.spark.util.collection.ExternalAppendOnlyMap.insertAll(ExternalAppendOnlyMap.scala:152) в org.apache.spark. Aggregator.combineValuesByKey(Aggregator.scala:45) в org.apache.spark.shuffle.BlockStoreShuffleReader.read(BlockStoreShuffleReader.scala:89) в org.apache.spark.rdd.ShuffledRDD.compute(ShuffledRDD.scala:98) в org. .apache.spark.rdd.RDD.computeOrReadCh eckpoint(RDD.scala:306) в org.apache.spark.rdd.RDD.iterator(RDD.scala:270) в org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38) в org.apache .spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:306)


person pythonic    schedule 30.09.2016    source источник


Ответы (1)


вы вызываете метод класса, реализующего интерфейс, но реализация этого метода отсутствует.

person Tokazio    schedule 30.09.2016
comment
Не могли бы вы уточнить. Я не понял, что ты сказал. Реализации какого класса нет? Вы имеете в виду класс List‹AlignmentBlock›? Если да, то как я могу это добавить? - person pythonic; 30.09.2016
comment
я не знаю крио, и теперь, когда мое объяснение может быть абстрактным ... нашел метод, который вы вызываете, и это дает вам это исключение. см. его исходный код. Я не могу делать себя, так как сижу на своем телефоне... - person Tokazio; 30.09.2016
comment
вроде в крио. извините, я могу помочь вам больше, потому что не знаю больше о крио. поместите код, где вы вызываете крио для сериализации - person Tokazio; 30.09.2016