Mam klasę, która implementuje niestandardowy serializator Kryo, implementując metody read()
i write()
z com.esotericsoftware.kryo.Serializer
(patrz przykład poniżej). Jak mogę zarejestrować ten niestandardowy serializator za pomocą Sparka?Spark Kryo: Zarejestruj niestandardowy serializator
Oto przykład kodu sudo, co mam:
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
Teraz w Spark:
val sparkConf = new SparkConf()
sparkConf.registerKryoClasses(Array(classOf[A]))
Niestety, Spark nie daje mi możliwość zarejestrowania mój serializatora niestandardowego . Masz pomysł, czy jest jakiś sposób na zrobienie tego?
Spójrz na spark.kryo.classesToRegister – Sohaib
[Ta odpowiedź] (http://stackoverflow.com/questions/32667068/save-spark-dataframe-into-elasticsearch-can-t-handle-type - wyjątek) nie jest bezpośrednią odpowiedzią na twoje pytanie, ale podane wyjaśnienie da ci więcej szczegółów na temat niestandardowej rejestracji serializatora w iskrze. – eliasah