我有一个名为“rdd”的javaPairRDD,其元组定义为:
<Integer,String[]>
我想使用max()函数提取最高密钥但是它需要一个Comparator作为参数,你能给我一个例子来做这件事,拜托!!!
示例:
rdd={(22,[ff,dd])(8,[hh,jj])(6,[rr,tt]).....}
申请rdd.max(....)后,它可以给我:
int max_key=22;
请帮助我...请在java中
答案 0 :(得分:1)
你的方法不起作用,因为元组没有固有的顺序。
您尝试做的是获取最大的密钥。最简单的方法是提取密钥,然后像这样获得最大值
keyRdd = rdd.keys()
max_key = keyRdd.max()
注意:不是javaSpark用户,因此语法可能有些偏差。
答案 1 :(得分:0)
即使@ David的答案是如此逻辑它对我不起作用它总是需要比较器,当我使用比较器时它出现异常(不是可序列化的操作,所以我尝试使用Ordering但这次最大-key是1(实际上意味着min),所以最后,我使用了最简单的方法,然后我对pairRDD进行了后续排序,然后我提取了第一个()元组。
int max-key = rdd.first()._ 1;