com.esotericsoftware.kryo.Serializer
'dan read()
ve write()
yöntemlerini uygulayarak özel bir Kryo serializer uygulayan bir sınıfa sahibim (aşağıdaki örneğe bakın). Bu özel seri hale getiriciyi Spark ile nasıl kaydedebilirim?Spark Kryo: Özel bir seri hale getirici kaydetme
val sparkConf = new SparkConf()
sparkConf.registerKryoClasses(Array(classOf[A]))
Maalesef Kıvılcım bana özel seri hale kayıt seçeneği vermez: Spark Şimdi
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
: Burada
sahip olduğumun bir sudo-kod örneği . Bunu yapmanın bir yolu var mı?
package com.acme
class MyRegistrator extends KryoRegistrator {
override def registerClasses(kryo: Kryo) {
kryo.register(classOf[A], new CustomASerializer())
}
}
Ardından, registrator en tam nitelikli adını, örn spark.kryo.registrator
ayarlayın:
spark.kryo.classesToRegister – Sohaib
[Bu cevap] (bak http://stackoverflow.com/questions/32667068/save-spark-dataframe-into-elasticsearch-can-t-handle-type -exception) sorunuza doğrudan bir cevap değildir, ancak sağlanan açıklama kıvılcımdaki özel seri hale getirici kaydı hakkında size daha fazla bilgi verecektir. – eliasah