Java序列化与kryo序列化的优缺点是什么?

问题描述 投票:0回答:2

在spark中,java序列化是默认值,如果kryo如此有效,那么为什么不将其设置为默认值。使用kryo有什么缺点吗?在什么情况下应该使用kryo或Java序列化?

apache-spark serialization kryo
2个回答
0
投票

这里是documentation的评论:

Kryo比Java序列化显着更快,更紧凑(通常多达10倍),但不支持所有Seri​​alizable类型并要求您在中注册要在该计划中使用的课程前进以获得最佳性能。

因此默认情况下不使用它,因为:

  1. 并非开箱即用地支持每个java.io.Serializable-如果您具有扩展了Serializable的自定义类,除非已注册,否则仍然无法使用Kryo进行序列化。
  2. 一个需要注册自定义类。

根据documentation的注释:

Spark自动包含许多Kryo序列化器的AllScalaRegistrar中涵盖的常用Scala核心类Twitter chill库。


0
投票

与我在处理Google protobufs时一样,kryo不适用于我的时间。那就是我必须先注册原型类的时候。

https://mvnrepository.com/artifact/de.javakaffee/kryo-serializers/0.45

© www.soinside.com 2019 - 2024. All rights reserved.