2015-05-19 29 views
1

我有以下的dilemna火花:mappartition(平行)+迭代(SEQ)与同时(SEQ)+地图(平行)

我用RDD [(KEY0,数据)玩,(KEY1,数据) ,(key0,data),..] 我需要使用相似的密钥汇总所有数据,然后才能通过密钥处理它们

第一个想法是遍历所有不同的密钥,并对每个密钥进行检索)所有使用相同键映射的数据。通过这种方式,我仍然可以对生成的结构(RDD)执行并行操作,但如果键数很多(很多迭代),则效率不高。第二个想法是使用自定义分区程序对分区数据进行分区(将多个分区作为不同的键)。然后,执行mappartition ..但是,在每个分区内,我们只能按顺序处理数据(Iterable ..)。效率低,如果有很多数据..

任何想法?还是存在第三个神奇的想法? 谢谢

+0

你想做什么?按键分组,下一步是什么? –

+0

你需要在数据上执行什么样的聚合? – maasg

+1

[tag:processing]标签只能用于有关Processing语言的问题。 –

回答

0

谢谢您的帮助..

所以,由同一个集合中的汇总数据(按键)(缓冲区,列表,...), 我可以对他们进行回归。但得到的收藏可能太大,无法居住在单个节点上

0

这个问题缺乏必须确定的细节水平,但它看起来像rdd.reduceByKey(aggregation)rdd.aggregateByKey(zero)(aggregator,reducer)将符合需要。