#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. удалось определить проблему и устранить ее?