今天关于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)
为什么规范不正确?
答案 0 :(得分:0)
为什么规范不正确?
因为它不是无效的。这意味着
p.sortBy{x=>(x._2,false)}
生成表单的密钥
(x._2,false)
,然后使用这些键进行排序。
元组(Int, Boolean)
具有隐式Ordering
,因此该代码没有理由失败