我使用SparkListener来监控缓存的RDD的大小。但是,我注意到无论我做什么,RDD的大小始终保持不变。我做了以下事情来压缩RDD。
val conf = new SparkConf().setAppName("MyApp")
conf.set("spark.rdd.compress","true")
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.....
val sc = new SparkContext(conf)
....
myrdd.persist(MEMORY_ONLY_SER)
即使如果我删除上面显示的第二行和第三行,Spark侦听器也会显示相同大小的RDD,这意味着将 spark.rdd.compress
设置为true并启用kryo序列化没有效果(OK kryo仅用于序列化,但 spark.rdd.compress
至少可以做到这一点)。我可以做什么错?
请注意,我的RDD类型为(Long,String)。这可能是原因吗?我的意思是,可能是Spark不压缩这种类型的RDD,特别是当字符串的大小很短时?
P.S:我正在使用Spark 1.6