是否有可能通过数组值“重新组合”数据而不会展平/爆炸? (火花)

时间:2017-02-10 00:14:09

标签: apache-spark spark-dataframe rdd

假设您有以下数据:

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。 没有扁平化,有没有任何棘手的方法可以做到这一点?

0 个答案:

没有答案