Размер RDD остается неизменным даже после сжатия

#scala #apache-spark #rdd

#scala #apache-spark #rdd

Вопрос:

Я использую 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 listener показывает тот же размер RDD, что означает, что установка spark.rdd.compress значения true и включение сериализации kryo не повлияли (OK kryo предназначен только для сериализации, но spark.rdd.compress , по крайней мере, мог бы сделать трюк). Какую ошибку я мог совершить?

Обратите внимание, что мой RDD имеет тип (Long, String). Может ли это быть причиной? Я имею в виду, может ли быть так, что Spark не сжимает RDD этого типа, особенно когда строки имеют короткий размер?

P.S: я использую Spark 1.6

Комментарии:

1. Вы устанавливаете свойства перед созданием SparkContext ?

2. Да, я установил их перед созданием SparkContext.

3. удалось определить проблему и устранить ее?