Spark:合并后减少RDD分区

时间:2018-06-21 16:48:40

标签: scala apache-spark

尽管使用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之后也没有减少该数目。 我在做什么错了?

0 个答案:

没有答案