zoukankan      html  css  js  c++  java
  • scala Ordering

    scala.math.Ordering

    自定义排序方法。

    例:(col : Int, row : Int, Value : Double )是一个Tuple3。排序默认按第一项作为Key。

    Ordering.by[(Int,Int,Double),Int](_._2)表示从Tuple3转到Int型。后面为转换函数。此句表示按此Tuple3中第二个元素进行排序。

    Ordering.by[T,U]( f(T) => U ).为此方法声明原型。

    文档中声明为:def by[T, S](f: (T) ⇒ S)(implicit ord: Ordering[S]): Ordering[T]

    提供自定义类型转换函数入口,可自定义Tuple排序、对象排序、以及转换不同类型间排序。但一般情况下,排序规则要符合常识。最好不要出现类似1>2的排序规则,以免引起误解和产生不必要的错误。

    spark RDD 中,有max方法。默认按第一元素为key。

    声明为:def max()(implicit ord: Ordering[T]): T。

    max方法本身没有参数!写成rdd.max(ord),编译无法通过。正确写法rdd.max()(ord)。

    返回类型为rdd中元素的类型。如需其中部分数据,不要忘记再进行相应处理。

    eg.

      val rows = data.max()(Ordering.by[(Int,Int,Double),Int](_._2))._2.toInt

    获取data(RDD)中元素的第二项中最大值。

    简记之。

  • 相关阅读:
    babel的使用以及安装配置
    常见的浏览器兼容性问题与解决方案——CSS篇
    ES6入门——变量的解构赋值
    ES6入门——let和const命令
    第一个移动端项目
    向Github提交更改的代码
    MySQL安装配置
    HTTP 状态消息
    HTMl基础
    Shell 常用的命令
  • 原文地址:https://www.cnblogs.com/suanec/p/4999805.html
Copyright © 2011-2022 走看看