2
我想從RDD獲得最大值使用RDD.max在斯卡拉。我的RDD包含一堆帶有字段的VO 持續時間(長類型)。我試着用下面的代碼,但它僅與詮釋,而不是工作很好地龍(按文件)從RDD獲取最大記錄
val vo1 = new MyVO()
vo1.setDuration(1234L)
val vo2 = new MyVO()
vo2.setDuration(123L)
val a = Array(vo1, vo2)
val sc = prepareConfig()
val rdd = sc.parallelize(a)
val maxKey2 = rdd.max()(new Ordering[MyVO]() {
override def compare(x: MyVO,
y: MyVO): Long =
Ordering[Long].compare(x.duration, y.duration)
})
println(maxKey2.duration)
我指的這個帖子 How to find max value in pair RDD?。 但我不知道如何處理龍在我的情況。任何幫助,高度讚賞
感謝您的答覆和它的工作。我在這裏有一個基本的查詢。建議在RDD中使用VO?我將在RDD中擁有數百萬條記錄,每個VO代表我的工作轉換點之後的一行。這是正確的方式? – BDR
是的,可以使用案例類。 – Beryllium
@Berylliums謝謝你 – BDR