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});