我有一个带有3个值的RDD
rdd = rdd.map(lambda x: (x['Id'],[float(x['value1']),int(x['value2'])]))
我想查找并返回value1最大化的整个RDD 我知道我能做到
rddMax = rdd.map(lambda x: (x['Id'], int(x['value1']))).reduceByKey(max)
然后加入它但我只想要一个干净的操作,它找到按键分组的最大值2,然后返回与这些值相关的整个RDD。
我也不想在任何情况下将数据放在数据框中
感谢
答案 0 :(得分:2)
试试这个:
>>> rdd = rdd.map(lambda x:
... (x['key'], (float(x['value1']), int(x['value2']))))
>>> rdd.reduceByKey(
... lambda (v11, v21), (v12,v22): (v11, v21) if v11 > v12 else (v12, v22))