在这个 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
S
是 Double
是 similarity
因此,您的函数根据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注入(代码片段
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段