在这个 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 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

python+spark程序代码片段

Spark闭包与序列化

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

Spark 分组然后排序(Java 代码)

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?