尽管使用coalesce(2000)
,但以下代码返回具有22000个分区的RDD。
private [sparse] def internalEvenProportionPerTargetMultivariate1( labelRdd: RDD[(Double, Int)]): RDDLabeledPoint =
{
val reducedpartsRDDList: Array[RDD[(LabeledPoint, Int, String)]] = preduceParts(proportionForReductionByLabel,labelRdd)
val newRDD=reducedpartsRDDList.tail.foldLeft(reducedpartsRDDList.head){ (rdd1, rdd2)
=> rdd1.union(rdd2) }.coalesce(2000)
new RDDLabeledPoint(newRDD)
}
最初,一个RDD具有大约500个分区。然后在方法preduceParts
中将其分为44个子集,并从每个子集中删除了一些行。
似乎reducedpartsRDDList: Array[RDD[(LabeledPoint, Int, String)]]
是由44个RDD组成的数组,每个RDD具有500个分区,并且union
甚至在coalesce
之后也没有减少该数目。
我在做什么错了?