0
给定RDD[(A, B)]
,其中A
和B
之间存在多对多关系,如何将关系的交集分组?在Spark中合并相交多对多关系
即,如果可以通过一个或多个B
s从一个A
到另一个A
绘制关系,则应该对它们进行分组。同样,B
s可以通过A
s进行分组。
例如,集合:
(1, 'a')
(2, 'a')
(2, 'b')
(1, 'c')
(3, 'f')
(4, 'f')
(5, 'g')
应组成
([1,2], ['a','b','c'])
([3,4], ['f'])
([5], ['g'])
我可以使用groupByKey
获得
(1, ['a', 'c'])
(2, ['a', 'b'])
(3, ['f'])
(4, ['f'])
(5, ['g'])
并且还
('a', [1, 2])
('b', [2])
('c', [1])
('f', [3,4])
('g', [5])
但我不知道在哪里把它从这里开始。
RDD不支持这样的行动在箱子外面!我认为,第一步是正确的。在任何groupBy之后,您需要根据需要对列表进行折叠。 – rakesh