[英]get the highest key from a javaPairRDD
我有一個名為“ rdd”的javaPairRDD,其元組定義為:
<Integer,String[]>
我想使用max()函數提取最高的鍵,但是它需要一個Comparator作為參數,請給我一個示例如何做,請!
例:
rdd={(22,[ff,dd])(8,[hh,jj])(6,[rr,tt]).....}
在應用rdd.max(....)之后,它給了我:
int max_key=22;
請幫助我...在java中
您的方法行不通,因為元組沒有固有的順序。
您想要做的就是獲得最大的鑰匙數。 最簡單的方法是提取密鑰,然后像這樣獲得最大值
keyRdd = rdd.keys()
max_key = keyRdd.max()
注意:由於不是javaSpark用戶,因此語法可能有點不正確。
即使@David的回答是如此邏輯,它對我也不起作用,並且始終需要一個Comparator,並且當我使用Comparator時,它出現了一個異常(不是可序列化的操作,因此我嘗試使用Ordering,但這一次max-key是1(實際上是最小),所以最后,我使用了有史以來最簡單的方法,對我的pairRDD進行了后代排序,然后提取了first()元組。
int max-key = rdd.first()._ 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.