我想使用repartition()方法更改RDD的分区大小。RDD上的方法调用成功,但是当我显式地使用RDD的partition.size属性检查分区大小时,返回的分区数量与原来的相同:
scala> rdd.partitions.size
res56: Int = 50
scala> rdd.repartition(10)
res57: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[19] at repartition at <console>:27
在这个阶段,我会执行一些操作,例如rdd.take(1),只是为了强制对其进行评估,以防万一。然后我再次检查分区大小:
scala> rdd.partitions.size
res58: Int = 50
正如大家所看到的,它没有变化。能否有人回答为什么?