现在,我有两个rdds。rdd1中的记录如下:
A : B,C,D
A是关键数据,而B / C / D是值。 rdd2中的记录如下:
A : feaA
B : feaB
...
值feaA
是键A
的特征数据。
我想要的是RDD,如下所示:
(A,feaA):(B,feaB),(C,feaC),(D,feaD)
现在,我的方法是反转rdd1中的键/值对,然后与rdd2联接:
A : B,C,D
将键值对反转为以下内容:
B:A
C:A
D:A
然后加入rdd1,我们可以获得:
(B,feaB) : A
(C,feaC) : A
(D,feaD) : A
反向高于RDD:
A : (B,feaB)
A :(C,feaC)
A : (D,feaD)
groupByKey,返回:
A:((B,feaB),(C,feaC),(D,feaD))
但是rdd1和rdd2都有10亿条记录。上面的方法对我来说太慢了。我也尝试广播rdd2,但是它太大而无法广播。在那儿 任何更快的方法?