私は、read()
とwrite()
のメソッドをcom.esotericsoftware.kryo.Serializer
(以下の例を参照)から実装することで、カスタムKryoシリアライザを実装するクラスを持っています。 このカスタムシリアライザはどのようにSparkに登録できますか?ここでSpark Kryo:カスタムシリアライザを登録する
は、私が持っているもののsudoのコードの例です:
スパークで今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
:
val sparkConf = new SparkConf()
sparkConf.registerKryoClasses(Array(classOf[A]))
残念ながら、スパークは私に私のカスタム・シリアライザを登録するためのオプションを与えるものではありません。これを行う方法があれば、どんな考えですか?
spark.kryo.classesToRegister – Sohaib
を見[この回答](http://stackoverflow.com/questions/32667068/save-spark-dataframe-into-elasticsearch-can-t-handle-type -exception)はあなたの質問に対する直接的な答えではありませんが、提供された説明はsparkでのカスタムシリアライザ登録の詳細を示します。 – eliasah