spark支援我們自定義,只需要繼承相應的類就可以了,我在下面準備了乙個用身高和年齡做二次排序的例子,希望可以幫到大家
首先寫乙個排序類
//名字 年齡 身高
class people(
val name:
string
,val age:
int,
val hight:
int)
extends ordered[people]
with serializable
else
}override
def tostring:
string
= s"名字:$name,年齡:$age,身高:$hight"
}
之後在使用的時候,用people類包裝資料,呼叫rdd集sortby就可以了,如果你的資料是二元組,且people在key上,那麼也可以呼叫sortbykey
不過要注意sortbykey只能用在key-value資料集上,且使用的是key的資料類中的排序方法,而sortby有第二個引數,本身是在一級排序時控制正反排序的,所以你如果用sortby,那麼就不要在你已經寫了自定義排序類的情況下傳遞第二個引數了,不然你會發現結果有問題,直接用下劃線代替引數就可以
Spark自定義排序
在這之前,我們先準備一些資料,使用rdd存放 獲得sparkcontext val conf sparkconf newsparkconf setmaster local 2 val sc newsparkcontext conf val rdd sc.parallelize list 公尺家雷射投...
Spark 自定義排序
考察spark自定義排序 package com.rz.spark.base import org.apache.spark.rdd.rdd import org.apache.spark.自定義排序 object customsort1 不滿足要求 tp.3,false 將rdd裡面封裝在user...
spark兩種自定義排序方式
一 目標物件新增隱式轉換函式的方式實現自定義排序 object mysortelse 隱式轉換函式實現自定義排序 object customsort1 學生類 case class student name string,age int,score int 二 目標物件實現ordered特質的方式實...