簡體   English   中英

Spark:數據幀序列化

[英]Spark: Dataframe Serialization

我有2個關於Spark序列化的問題,我只能通過谷歌搜索找不到答案。

  1. 如何打印出當前使用的序列化程序的名稱; 我想知道spark.serializer是Java還是Kryo。
  2. 我有以下代碼,應該使用Kryo序列化; 用於數據幀的內存大小變為21meg,這是我剛剛緩存而沒有序列化的四分之一; 但是當我刪除Kryo配置時,大小保持相同的21meg。 這是否意味着Kryo從未被用在第一位? 可能是因為數據框中的記錄只是行,Java和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) 

這是否意味着Kryo從未被用在第一位?

這意味着它。 Spark SQL( Dataset )使用它自己的柱狀存儲進行緩存。 沒有使用Java或Kryo序列化因此spark.serializer根本沒有影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM