繁体   English   中英

在rdd上与累加器循环

[英]loop with accumulator on an rdd

我想循环n次,其中n是同一rdd上的累加器

假设n = 10,所以我希望波纹管代码循环5次(因为累加器增加了2)

val key = keyAcm.value.toInt
val rest = rdd.filter(_._1 > (key + 1))
val combined = rdd.filter(k => (k._1 == key) || (k._1 == key + 1))
                  .map(x => (key, x._2))
                  .reduceByKey { case (x, y) => (x ++ y) }
keyAcm.add(2)
combined.union(rest)

使用此代码,我将过滤rdd并保留键0(累加器的初始值)和1。然后,我尝试合并其第二个参数并更改键以使用键0和合并数组创建一个新的rdd。 之后,我将此rdd与原始rdd合并,留下过滤后的值(0和1)。 最后,将累加器增加两个。如何重复这些步骤直到累加器为10?

有任何想法吗?

val rdd: RDD[(Int, String)] = ???
val res: RDD[(Int, Iterable[String])] = rdd.map(x => (x._1 / 2, x._2)).groupByKey()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM