在Spark RDD中查找最大值

Zer*_*rty 1 scala apache-spark

从下面的内容中,我如何获得具有最高价值的元组?

Array[(String, Int)] = Array((a,30),(b,50),(c,20))
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想要的结果是 (b,50)

mto*_*oto 6

你可以使用reduce():

val max_tuple = rdd.reduce((acc,value) => { 
  if(acc._2 < value._2) value else acc})
//max_tuple: (String, Int) = (b,50)
Run Code Online (Sandbox Code Playgroud)

数据

val rdd = sc.parallelize(Array(("a",30),("b",50),("c",20)))
Run Code Online (Sandbox Code Playgroud)