Spark排序方式之Ordering on

2021-09-27 20:58:34 字數 865 閱讀 1521

一、spark的幾種排序方式

(1)直接根據字段進行排序 弊端:如果欄位太多不便於使用

(2)封裝乙個類,實現它的ordered 弊端:用自定義實現序列化方式比較麻煩

(3)用case class的方式排序 推薦:不用new、預設就實現了序列化

(4)最簡單的排序方式ordering on

二、spark最簡單的一種排序方式ordering on

package com.ruozedata.bigdata.spark.core02

import com.ruozedata.bigdata.spark.utils.contextutils

import com.ruozedata.bigdata.spark.utils.implicitaspect._

def main(args: array[string]): unit = )

/*** ordering on

** -x._2, -x._3 排序規則

* (double,int) 定義的是規則的返回值的型別

* (string,double,int) 資料的型別

*/implicit val ord = ordering[(double,int)].on[(string,double,int)](x=>(-x._2, -x._3))

product.sortby(x=>x).printinfo()

sc.stop()

}}

輸出的結果

(紅酒,20.0,100)

(啤酒,20.0,10)

(白酒,5.0,200)

~~~~~~~~~~~~~~~~~~~

ThinkPHP CURD方法之order方法詳解

thinkphp curd方法的order方法屬於模型的連貫操作方法之一,該www.cppcns.com方法用於對操作的結果排序。具體用i bjsri法如下 model where status 1 order id desc limit 5 select 注意 連貫操作方法i bjsri沒有順序,...

Spark中排序的幾種方式

有如下的資料,我們需要對其進行排序,欄位的意思分別為 商品,數量 val rdd sc.parallelize list iphone5 1000 20 iphone6 2000 50 iphone7 2000 100 iphone11 5000 50 需求 把商品按照 公升序 import org...

sql中order進行複雜排序

現有一網紅表,每乙個網紅都已乙個直播開始時間和直播結束時間,現在我想在列出網紅列表的時候,把當前時間正在直播的網紅放在前面 使用where語句中的between能把正在直播的篩選出來,但我並不是把正在直播的篩選出來,只是把他們靠前排列。如果先查詢出來結果,再迴圈判斷重新排序的話看似可以,但注意我每次...