스파크 직렬화와 관련하여 2 가지 질문이 있습니다. 단순히 인터넷 검색으로 답변을 찾을 수 없습니다.Spark : Dataframe Serialization
- 현재 사용중인 시리얼 라이저의 이름을 어떻게 인쇄 할 수 있습니까? 나는 spark.serializer가 Java인지 Kryo인지를 알고 싶다.
나는 Kryo 직렬화를 사용하기로되어있는 다음 코드를 가지고있다; 데이터 프레임에 사용 된 메모리 크기는 21 메가가됩니다. 이것은 직렬화없이 캐싱 만했을 때의 1/4입니다. 그러나 Kryo 구성을 제거하면 크기가 동일하게 유지됩니다. 이것은 Kryo가 처음부터 사용 된 적이 없다는 것을 의미합니까? 데이터 프레임의 레코드가 단순히 행이기 때문에 자바와 Kryo 직렬화가 모두 같은 크기 일 수 있습니까?
val conf = new SparkConf() conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") conf.set("spark.kryo.registrationRequired", "false") val spark = SparkSession.builder.master("local[*]").config(conf) .appName("KryoWithRegistrationNOTRequired").getOrCreate val df = spark.read.csv("09-MajesticMillion.csv") df.persist(StorageLevel.MEMORY_ONLY_SER)
답변 해 주셔서 감사합니다. 이것을 설명하는 문서 또는 문서를 참조 할 수 있습니까? – user1888243