Я пытаюсь использовать 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)