use*_*243 5 serialization scala kryo apache-spark spark-dataframe
我有 2 个关于 Spark 序列化的问题,我无法通过谷歌搜索找到答案。
我有以下应该使用 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)
Run Code Online (Sandbox Code Playgroud)小智 4
这是否意味着 Kryo 从一开始就没有被使用过?
正是这个意思。Spark SQL(Dataset)使用它自己的列式存储来进行缓存。未使用 Java 或 Kryo 序列化,因此spark.serializer完全没有影响。
| 归档时间: |
|
| 查看次数: |
3747 次 |
| 最近记录: |