apache-spark - java序列化与kryo序列化的优缺点是什么?

标签 apache-spark serialization kryo

在 spark 中,java 序列化是默认的,如果 kryo 这么高效,那么为什么不将其设置为默认值。使用 kryo 是否有一些缺点,或者在什么情况下我们应该使用 kryo 或 java 序列化?

最佳答案

这是 documentation 的评论:

Kryo is significantly faster and more compact than Java serialization (often as much as 10x), but does not support all Serializable types and requires you to register the classes you’ll use in the program in advance for best performance.



所以默认情况下不使用它,因为:
  • 并非所有 java.io.Serializable 都支持开箱即用 - 如果您有扩展 Serializable 的自定义类,它仍然无法使用 Kryo 进行序列化,除非已注册。
  • 需要注册自定义类。

  • 注意根据 documentation :

    Spark automatically includes Kryo serializers for the many commonly-used core Scala classes covered in the AllScalaRegistrar from the Twitter chill library.

    关于apache-spark - java序列化与kryo序列化的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946987/

    相关文章:

    apache-spark - 断言失败 : conflicting directory structures detected. 可疑路径

    java - 将 Spark 的 Kryo 序列化程序与具有字符串数组的 Java Protocol Buffer 一起使用时出错

    scala - 在 Spark 2+ 中通过 SparkSession 向 Kryo 注册类

    c# - 在 C# 中实现可序列化类的首选方法是什么

    javascript - 移动设备上性能更好的 JSON 替代方案

    java - 如何使用 Kryo 序列化 Multimap?

    hadoop - 什么是 "Hadoop"- Hadoop 的定义?

    java - 在 Spark 中获取 StreamChunkId 时失败

    python - Pyspark 和 Cassandra 安全 bundle.zip

    java - Jackson 序列化程序在序列化后不显示 jsonInfoType