ordering.by 在此 spark 代码片段中意味着什么?

What does ordering.by means in this spark code fragment?

代码示例:(在 iPad,抱歉图片不是文字)

在这个例子中,[(int,double),double] 代表什么? 我找不到关于它的文档…

为什么函数中有一个case关键字? 像Javascript一样,在箭头函数中,case关键字不是必需的。

sims 的类型似乎是 (Int, Double)(一个元组)。

Ordering.by签名是

def by[T, S](f: T => S)(implicit ord: Ordering[S]): Ordering[T] = new Ordering[T] {

T(Int, Double)id

SDoublesimilarity

因此,您的函数根据 similarity 的值进行排序。

这里的case用来提取元组的不同值。否则,您的函数将是

Ordering.by[(Int, Double, Double)]( v => v._2) // 2nd element of the tuple == similarity