开发者社区> 问答> 正文

Spark序列化组件中的Kryo序列化怎么用?

Spark序列化组件中的Kryo序列化怎么用?

展开
收起
游客ahv54x37wvm7u 2021-12-13 20:05:10 813 0
1 条回答
写回答
取消 提交回答
  • 可以在创建 SparkContext 之前,通过调用 System.setProperty("spark.serializer", "spark.KryoSerializer"),将序列化方式切换成Kryo。

    但是 Kryo 需要用户进行注册,这也是为什么 Kryo 不能成为 Spark 序列化默认方式的唯一原因,但是建议对于任何“网络密集型”(network-intensive)的应用,都采用这种方式进行序列化方式。

    Kryo文档描述了很多便于注册的高级选项,例如添加用户自定义的序列化代码。

    如果对象非常大,你还需要增加属性 spark.kryoserializer.buffer.mb 的值。该属性的默认值是32,但是该属性需要足够大以便能够容纳需要序列化的最大对象。

    最后,如果你不注册你的类,Kryo仍然可以工作,但是需要为了每一个对象保存其对应的全类名(full class name),这是非常浪费的。

    2021-12-13 20:05:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载