[SCALA] Kryo 스파크 : 사용자 정의 시리얼 등록
SCALAKryo 스파크 : 사용자 정의 시리얼 등록
나는 클래스가 그 구현 읽기 () 및 쓰기 () com.esotericsoftware.kryo.Serializer에서 방법 (아래 예 참조)을 구현하여 사용자 정의 Kryo 시리얼. 어떻게 불꽃이 정의 시리얼을 등록 할 수 있습니다?
여기에 내가 무엇을의 의사 코드의 예입니다 :
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]))
불행하게도, 스파크 나에게 내 사용자 지정 시리얼을 등록 할 수있는 옵션을 제공하지 않습니다. 어떤 생각이 할 수있는 방법이 있다면?
해결법
-
==============================
1.이 사용자 정의 시리얼 등록하여 자신의 KryoRegistrator 만들기 :
이 사용자 정의 시리얼 등록하여 자신의 KryoRegistrator 만들기 :
package com.acme class MyRegistrator extends KryoRegistrator { override def registerClasses(kryo: Kryo) { kryo.register(classOf[A], new CustomASerializer()) } }
그런 다음 registrator로 설정 spark.kryo.registrator은 완전한 이름은 예입니다 com.acme.MyRegistrator :
val conf = new SparkConf() conf.set("spark.kryo.registrator", "com.acme.KryoRegistrator")
from https://stackoverflow.com/questions/36144618/spark-kryo-register-a-custom-serializer by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 무엇을 Predef.locally 수행 방법 Predef.identity에서 그 차이가 않습니다 (0) | 2019.11.27 |
---|---|
[SCALA] 스칼라 컬렉션을 변경할 수 대에 불변 (0) | 2019.11.27 |
[SCALA] 컴파일 실패 : 오류를로드하는 동안 AnnotatedElement이, 인 ConcurrentMap, CharSequence를 자바 8에서 스칼라 2.10에서? (0) | 2019.11.27 |
[SCALA] 왜 매개 변수 목록이없는 경우 클래스는 사용되지 않는? (0) | 2019.11.27 |
[SCALA] 문자열 보간에 달러 기호를 탈출 (0) | 2019.11.27 |