我有一个类通过实现read()和write()方法实现自定义Kryo序列化器com.esotericsoftware.kryo.Serializer(参见下面的示例).如何在Spark中注册此自定义序列化程序?
这是我所拥有的伪代码示例:
class A()
CustomASerializer extends com.esotericsoftware.kryo.Serializer[A]{
override def write(kryo: Kryo, output: Output, a: A): Unit = ???
override def read(kryo: Kryo, input: Input, t: Class[A]): A = ???
}
val kryo: Kryo = ...
kryo.register(classOf[A], new CustomASerializer()); // I can register my serializer
Run Code Online (Sandbox Code Playgroud)
现在在Spark:
val sparkConf = new SparkConf()
sparkConf.registerKryoClasses(Array(classOf[A]))
Run Code Online (Sandbox Code Playgroud)
不幸的是,Spark没有给我选择注册我的自定义序列化程序.知道是否有办法做到这一点?