分布式互相关矩阵计算

时间:2017-02-17 17:30:52

标签: algorithm apache-spark distributed-computing distributed cross-correlation

如何以分布式方式计算大(> 10TB)数据集的皮尔森互相关矩阵?任何有效的分布式算法建议将不胜感激。

更新: 我读了apache spark mlib相关的实现

Pearson Computaation:
/home/d066537/codespark/spark/mllib/src/main/scala/org/apache/spark/mllib/stat/correlation/Correlation.scala
Covariance Computation:
/home/d066537/codespark/spark/mllib/src/main/scala/org/apache/spark/mllib/linalg/distributed/RowMatrix.scala

但对我来说,看起来所有的计算都发生在一个节点上,而且它并没有真正意义上的分布。

请点亮这里。我也尝试在3节点火花簇上执行它,下面是屏幕截图:

Entire Computation timeline One the task details

正如您从第二张图片中看到的那样,数据在一个节点上拉,然后正在进行计算。我在这里吗?

2 个答案:

答案 0 :(得分:5)

首先,请查看this,了解情况是否正确。然后,您可以参考以下任何一种实现:MPI / OpenMP:AgomezlMeismyles,MapReduce:VangjeeSeawolf42。在继续之前阅读this也很有趣。另外,如果您对计算对异常值具有鲁棒性的相关性感兴趣,James's thesis会提供一些指示。

答案 1 :(得分:0)

每个本地数据集都可以转换为stdv和协方差。 而且stdv和协方差与和也具有相关性。

这是工作示例 https://github.com/jeesim2/distributed-correlation