2015-10-19 78 views
0

我使用reduce操作来处理集群上的数据,但是我发现它花费了太多时间。为了减少类型RDD的是:如何在使用减少操作时节省时间?

RDD[(Array[Array[Double]], Array[Array[Double]], Array[Double], Array[Double])] 

问题1:如果RDD的类型是简单的像RDD [数组[双],也许它的成本更少的时间?
问题2:在使用rdd.reduce时,我有什么其他方法可以节省时间?

+1

如果我们没有看到你尝试减少什么样的东西,很难提供帮助。可能是任何事情。 –

+0

让我们知道你是如何得到这个RDD的。可能是你正在使用地图而不是flatMap。 – Knight71

回答

0

ReduceByKey方法需要两个参数reduceByKey(func,[numTasks])。首先是功能,无论你想要执行什么操作,其次是“任务数量”,这是可选参数。

设置任务的最佳数量取决于您的机器配置。

例如。 Rdd.redueceByKey(func,4) 它会创建四个并行进程/任务来执行reduce操作。它将比现在的表现快四倍。

+0

谢谢,但我想用reduce操作,因为我想要一个数组作为我的返回结果,所以我该怎么办? – zhengjw