【发布时间】:2017-02-09 08:28:54
【问题描述】:
我正在尝试在 spark 中为 the SAMRecord class 使用 Kryo,但在运行时出现错误。我不明白这个错误是什么意思,谁能解释一下?为了让 Kryo 使用它,我需要改变什么?问题在于List<AlignmentBlock> 类型的成员变量mAlignmentBlocks。 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(Serializer.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.computeOrReadCheckpoint(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)
【问题讨论】:
标签: java scala apache-spark kryo bigdata