Spark Scala执行sortBy,但未按预期执行

时间:2019-01-26 21:33:36

标签: apache-spark

今天关于SO的另一个问题的以下内容,其中没有按照以下语法进行降序排序:

val p=sc.parallelize(Seq(("abc",1),("def",2),("ghi",3),("jkl",4)))
val s=p.sortBy{x=>(x._2,false)}

这里的基于第二元组元素的RDD降序语法显然不符合一般方法,但确实可以执行。在我的机器上,我得到了一个看起来像升序的排序,但是原始问题的作者却没有,所以可能是我的偶然发现。

正确的语法是:

val s2=p.sortBy(x=> x._2,false)

为什么规范不正确?

1 个答案:

答案 0 :(得分:0)

  

为什么规范不正确?

因为它不是无效的。这意味着

p.sortBy{x=>(x._2,false)}

生成表单的密钥

(x._2,false)

,然后使用这些键进行排序。

元组(Int, Boolean)具有隐式Ordering,因此该代码没有理由失败