我对kryo的特定avro序列化有疑问。很抱歉,如果这个问题看似多余,但我找不到简单的答案。
我已经将Spark配置为与Kryo一起运行并且运行良好:使用自定义KryoRegistrator类可以很好地序列化Avro生成的类。我也使用twitter.chill-avro
包。
class AvroClassRegistrator extends KryoRegistrator {
override def registerClasses(kryo: Kryo) {
kryo.register(classOf[MyAvroClass], AvroSerializer.SpecificRecordSerializer[MyAvroClass])
}
尽管如此,当我尝试序列化Map[String, MyAvroClass]
时,使序列化工作的唯一方法是使用MyAvroClass
扩展java.io.Serializable
。
有人能解释一下我究竟发生了什么,并告诉我如何用kryo注册这个Map[..., AvroClass]
?
谢谢