我生成了一组带有一组键值对的RDD。假设密钥是[10,20,25,30,40,50]。真正的密钥靠近大小为X.X米的地理区域,需要聚合到2 * X.2 * X大小。 因此,在这个RDD集中,我需要聚合具有它们之间关系的密钥。示例一个键是当前键的两倍 - 例如10和20.然后将这些键加在一起得到30.这些值也将加在一起类似地,结果集将是[30,25,70,50]。 我假设,因为map和reduce对RDD中元素的当前键的工作,没有办法使用map或groupbyKey或aggregatebyKey;因为我想要的分组需要前一个键的状态
我认为唯一的方法是使用foreach遍历RDD中的元素,并且每个元素也将整个RDD传递给它。
def group_rdds_together(rdd,rdd_list):
key,val = rdd
xbin,ybin = key
rdd_list.foreach(group_similar_keys,xbin,ybin)
bin_rdd.map(lambda x : group_rdds_together(rdd,bin_rdd))
为此,我必须将rdd传递给map lambda以及foreach函数的自定义参数
我正在做的事情是可怕的错误;只是想说明我要去哪里。应该有一个比这更简单,更好的方法