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