Apache spark 如何对RDD元素的随机对执行操作?

Apache spark 如何对RDD元素的随机对执行操作?,apache-spark,rdd,Apache Spark,Rdd,我想对RDD元素的随机对执行操作,这样就可以从较大的数字中取1并将其添加到较小的数字中 例如,这是我们的随机对: (23,-52)、(3,2)、(5,-2)、(29,0) 在对这些对执行给定的操作之后,我们会得到如下RDD: (22,2,3,-51,-1,4,28,1) 另一个例子: (3,23,-2,5,0,2,-52,29) 如何实施此问题的解决方案 输入RDD是(3,23,-2,5,0,2,-52,29)。我必须对这个RDD-s元素的随机组合执行给定的操作。例如,我必须对这个RDD-s元

我想对RDD元素的随机对执行操作,这样就可以从较大的数字中取1并将其添加到较小的数字中

例如,这是我们的随机对:
(23,-52)、(3,2)、(5,-2)、(29,0)

在对这些对执行给定的操作之后,我们会得到如下RDD:
(22,2,3,-51,-1,4,28,1)

另一个例子:
(3,23,-2,5,0,2,-52,29)

如何实施此问题的解决方案



输入RDD是(3,23,-2,5,0,2,-52,29)。我必须对这个RDD-s元素的随机组合执行给定的操作。例如,我必须对这个RDD-s元素的组合执行给定的操作:(23,-52),(3,2),(5,-2),(29,0)或者对这个组合执行给定的操作:(2,-52),(29,-2),(0,5),(23,3)

您可以在映射步骤中执行操作,然后使用flatMap删除对

valrdd=sc.parallelize(Seq((23,-52),(3,2),(5,-2),(29,0)))
val rdd2=rdd.map(s=>
s、 _1>s._2匹配{
大小写为true=>(s._1-1,s._2+1)
case false=>(s._1+1,s._2-1)
}
).flatMap(s=>Seq(s._1,s._2))
println(rdd2.collect().mkString(“”)

输出:
2 3 22 4-1-51 28 1

您可以在map步骤中执行操作,然后使用flatMap删除对

valrdd=sc.parallelize(Seq((23,-52),(3,2),(5,-2),(29,0)))
val rdd2=rdd.map(s=>
s、 _1>s._2匹配{
大小写为true=>(s._1-1,s._2+1)
case false=>(s._1+1,s._2-1)
}
).flatMap(s=>Seq(s._1,s._2))
println(rdd2.collect().mkString(“”)

输出:
2 3 22 4-1-51 28 1

第一个RDD的输入是什么?你说的“第一个RDD的输入”是什么意思?你的第一个RDD不是成对的。你说“给你一双”,你没有得到一双。是的,我明白了。你说“在我们对这对执行给定的操作之后”。。。“第一个问题”的操作输出的输入是什么?@cricket_007抱歉没有早些回复。我正在等待冠状病毒检测结果。结果为阴性。输入RDD为(3,23,-2,5,0,2,-52,29)。我必须对这个RDD-s元素的随机组合执行给定操作。我必须对这个RDD-s元素的组合执行给定操作,例如:(23,-52),(3,2),(5,-2),(29,0)或这个组合:(2,-52),(29,-2),(0,5),(23,3)。什么是随机组合是不相关的,相关的是在一些随机战斗中执行给定的操作。第一个RDD的输入是什么?你说的“第一个RDD的输入”是什么意思?你的第一个RDD不是成对的。你说“给你一双”,你没有得到一双。是的,我明白了。你说“在我们对这对执行给定的操作之后”。。。“第一个问题”的操作输出的输入是什么?@cricket_007抱歉没有早些回复。我正在等待冠状病毒检测结果。结果为阴性。输入RDD为(3,23,-2,5,0,2,-52,29)。我必须对这个RDD-s元素的随机组合执行给定操作。我必须对这个RDD-s元素的组合执行给定操作,例如:(23,-52),(3,2),(5,-2),(29,0)或这个组合:(2,-52),(29,-2),(0,5),(23,3)。什么是随机组合是不相关的,与之相关的是在一些随机战斗中执行给定的操作。我认为使用模式匹配会使
s.\u 1
s.\u 2
看起来更干净,并且可以执行
println(rdd2.collect().mkString(“”)
我认为使用模式匹配会使
s.\u 1
s.\u 2
看起来更干净,您可以执行
println(rdd2.collect().mkString(“”)