Spark默認采用Java的序列化器,這里建議采用Kryo序列化提高性能。實測性能最高甚至提高一倍。
Spark之所以不默認使用Kryo序列化,可能的原因是需要對類進行注冊。
Java程序中注冊很簡單:
SparkConf conf = new SparkConf().setAppName(appName);
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
conf.registerKryoClasses(new Class[]{YOUR_SPARK_CLASS.class});
