【发布时间】:2018-04-23 20:07:59
【问题描述】:
我有一个 RDD,我想找到所有具有最大值的键。 所以如果我有
( ((A), 5), ((B), 4), ((C), 5)) )
那我要回去了
( ((A), 5), ((C), 5)) )
编辑; MaxBy 只提供一把钥匙,所以我认为这行不通。
我试过了
newRDD = oldRDD.sortBy(._2, false).filter{._2 == _.first}¨
和
newRDD = oldRDD.filter{_._2 == _.maxBy}
我知道 _.first 和 _.MaxBy 不起作用,但应该从 oldRDD 获取 maxValue。在我尝试的每个解决方案中,我的问题是我无法访问过滤器内的 maxValue。我也相信我尝试的第二个“解决方案”比第一个要快得多,因为 sortBy 并不是真正必要的。
【问题讨论】:
-
您是否尝试过使用
maxBy? -
一般来说,我们希望 I want to 后跟 I tried - idownvotedbecau.se/noattempt, idownvotedbecau.se/nomcve
-
@user6910411 未包含在
want { ... } try { ... } catch { ... }-block 中的每个问题都是语法错误? ;)
标签: scala apache-spark rdd