【发布时间】:2016-11-27 01:55:37
【问题描述】:
我有以下 RDD,其中包含我想按项目相似性分组的项目集(同一集合中的项目被认为是相似的。相似性是可传递的,并且集合中至少有一个共同项目的所有项目也被认为是相似的)
输入RDD:
Set(w1, w2)
Set(w1, w2, w3, w4)
Set(w5, w2, w6)
Set(w7, w8, w9)
Set(w10, w5, w8) --> All the first 5 set elements are similar as each of the sets have atleast one common item
Set(w11, w12, w13)
我希望将上述 RDD 简化为
Set(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10)
Set(w11, w12, w13)
关于我如何做到这一点的任何建议?我无法做类似下面的事情,如果它们不包含任何共同元素,我可以忽略减少两组:
data.reduce((a,b) => if (a.intersect(b).size > 0) a ++ b ***else (a,b)***)
谢谢。
【问题讨论】:
标签: apache-spark reduce