0
我有元組,其是這樣的獲取多個元組
([1,2,4],3,userdn1) ([1,6,7],1,userdn1) ([1,2 ,7],2,userdn1)
我正在使用RDD獲取最大計數的元組,這是第一個元組,但可能有多個元組可能具有相同的計數,我怎樣才能得到多個具有相同最大值的元組?現在最大的方法只返回一個單元組
我有元組,其是這樣的獲取多個元組
([1,2,4],3,userdn1) ([1,6,7],1,userdn1) ([1,2 ,7],2,userdn1)
我正在使用RDD獲取最大計數的元組,這是第一個元組,但可能有多個元組可能具有相同的計數,我怎樣才能得到多個具有相同最大值的元組?現在最大的方法只返回一個單元組
你想獲得這樣的結果嗎?
//just try to initial some similar records
val rdd = sc.parallelize[(Array[Int],Int, String)](Array[(Array[Int],Int, String)]((Array(1,4), 3, "dn1"),(Array(1,2,4), 3, "dn1"),(Array(1,6,7), 1, "dn1"),(Array(1,2,7), 2, "dn1")))
//here max records you wanna
val max = rdd.map(t => t._1.length).max
val rddmax = rdd.filter(t => t._1.length == max)
這裏是結果:
rddmax.collect
res1: Array[(Array[Int], Int, String)] = Array((Array(1, 2, 4),3,dn1), (Array(1, 6, 7),1,dn1), (Array(1, 2, 7),2,dn1))
可以進行排序,取前n個元素,然後扔掉較小值。 – Dikei
我怎麼知道要採取多少元素? – allthenutsandbolts
如果您不知道需要多少個,則取第一個,然後過濾具有相同值的物品的RDD。 – Dikei