【发布时间】:2019-08-20 17:19:10
【问题描述】:
我有一个返回序列Seq((20,6),(22,6),(23,6),(24,6),(20,1),(22,1)) 的平面映射,现在我需要在从平面映射得到的序列上使用reduceByKey() 来找到每个键的最小值。
我尝试使用.reduceByKey(a,min(b)) 和.reduceByKey((a, b) => if (a._1 < b._1) a else b),但它们都不起作用。
这是我的代码
for(i<- 1 to 5){
var graph=graph.flatMap{ in => in match{ case (x, y, zs) => (x, y) :: zs.map(z => (z, y))}
.reduceByKey((a, b) => if (a._1 < b._1) a else b)
}
对于平面图生成的每个不同的键,我需要获取该键的最小值。例如:平面图生成 Seq((20,6),(22,6),(23,6),(24,6),(20,1),(22,1)) resultByKey() 应该生成 ( 20,1),(22,1),(23,6),(24,6)
【问题讨论】:
-
开头
graph里面是什么? -
“他们都没有工作”并不是一个真正的问题......
-
在代码 sn-p 之前显示
graph的类型会更容易。有时,如果不是经常的话,解释你的算法试图实现的目标也可能会有所帮助。也许人们知道一个更简单的解决方案,或者它甚至在某个地方存在一个实现。例如,您的代码看起来像一些图形算法 -
@Dima 问题在标题中...
标签: scala apache-spark reduce flatmap