Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spark序列化策略-我应该只使用Kryo吗?_Java_Apache Spark_Kryo - Fatal编程技术网

Java Spark序列化策略-我应该只使用Kryo吗?

Java Spark序列化策略-我应该只使用Kryo吗?,java,apache-spark,kryo,Java,Apache Spark,Kryo,我是新手。甚至比Kryo更新。在我的spark应用程序中,我使用kryo对值对象进行序列化,但只对包含算法的对象使用可序列化接口……原因是我不想向kryo注册每个类 我应该只使用kryo吗? 混合和匹配是否正常(就像我正在做的那样)?当您将spark.serializer设置为org.apache.spark.serializer.KryoSerializer时,RDD中的所有对象(不包括闭包*)都使用Kryo进行序列化。类注册只是提高性能的一种方法(注册的类只需要整数id,而不是与序列化对象一

我是新手。甚至比Kryo更新。在我的spark应用程序中,我使用kryo对值对象进行序列化,但只对包含算法的对象使用可序列化接口……原因是我不想向kryo注册每个类

我应该只使用kryo吗?
混合和匹配是否正常(就像我正在做的那样)?

当您将
spark.serializer
设置为
org.apache.spark.serializer.KryoSerializer
时,RDD中的所有对象(不包括闭包*)都使用Kryo进行序列化。类注册只是提高性能的一种方法(注册的类只需要整数id,而不是与序列化对象一起存储的完全限定类名)。您可以查看Kryo文档以了解详细信息

换句话说,如果您关心性能,您应该注册所有必须在您的程序中序列化的类,但无论如何您已经使用了Kryo



*闭包是使用标准的Java序列化进行序列化的,在Kryo中注册不会影响这一点,因此,如果要通过闭包传递某些对象,您仍然必须使用
Java.io.Serializable

太棒了!我一直认为,甚至闭包都是通过Kryo序列化的,这是没有意义的…谢谢!