我对MapReduce相对较新,我想到了以下问题:如何在MapReduce中计算出一个完整的(即非稀疏的)距离矩阵?
我有一个包含N个实例的2D数据集,我必须评估这些点之间的所有可能距离并将它们存储在矩阵中。
到目前为止我做的是
我认为这不是很有效(特别是从记忆的角度来看)。
任何人都可以启发我吗?
更新:我在上面的代码中进行了一些优化。现在
毫无疑问,一个更好的解决方案,因为Mappers不需要构建整个NxN矩阵,但是,我认为它可以做得更好。
答案 0 :(得分:0)
我就是这样做的:Map任务只是评估给定实例j
和所有其他实例之间的距离。 Reducer在写入磁盘的向量中连接这些距离。这样的记录确实是矩阵的j
行。对所有实例都进行此操作,然后将写在磁盘上的所有记录连接在一起。