在这个 spark 代码片段中 ordering.by 是啥意思?

Posted

技术标签:

【中文标题】在这个 spark 代码片段中 ordering.by 是啥意思?【英文标题】:What does ordering.by means in this spark code fragment?在这个 spark 代码片段中 ordering.by 是什么意思? 【发布时间】:2021-10-05 02:20:12 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

看来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

【讨论】:

以上是关于在这个 spark 代码片段中 ordering.by 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章