我有一个textFile
和RDD一样:sc.textFile(
.
我尝试重新分区RDD以加快处理速度:
sc.repartition(
.
无论我投入什么
,它似乎都没有改变,如下所示:
RDD.getNumPartitions()
总是打印相同的数字,(3)
无论如何.
如何更改分区数以提高性能?
那是因为RDD是不可变的.您无法更改 RDD的分区,但可以创建具有所需分区数的新分区.
scala> val a = sc.parallelize( 1 to 1000) a: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at:21 scala> a.partitions.size res2: Int = 4 scala> val b = a.repartition(6) b: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[4] at repartition at :23 scala> a.partitions.size res3: Int = 4 scala> b.partitions.size res4: Int = 6