假设您有以下数据:
id1, [f1, f2], [x_id1, x_id2]
id2, [f1, f4], [x_id3, x_id2]
id3, [f3, f2], [x_id1, x_id3]
你想得到这个:
x_id1, [id1, id3], [[f1, f2],[f3, f2]]
x_id2, [id1, id2], [[f1, f2],[f1, f4]]
x_id3, [id2, id3], [[f1, f4],[f3, f2]]
我想知道在没有展平/爆炸数据的情况下进行转换是否是一种棘手的方法。如果我们不考虑在分布式系统中,我们可以轻松地迭代x_id数组并填充哈希映射(或任何存储),但是使用RDD我必须将数据展平:
id1, [f1, f2], x_id1
id1, [f1, f2], x_id2
id2, [f1, f4], x_id3
id2, [f1, f4], x_id2
id3, [f3, f2], x_id1
id3, [f3, f2], x_id3
而且容易耗尽内存。我们谈论的是少数100M ID,功能大小为1k-10k和100-1k x_id。 没有扁平化,有没有任何棘手的方法可以做到这一点?