使用 reduceByKey 查找 RDD 的最大值,然后查找不同变量的关联值

Find max value of RDD with reduceByKey and then find associate value of a different variable

我有一个包含 3 个值的 RDD

rdd = rdd.map(lambda x: (x['Id'],[float(x['value1']),int(x['value2'])]))

我想找到并 return value1 最大化的整个 RDD 我知道我可以

rddMax = rdd.map(lambda x: (x['Id'], int(x['value1']))).reduceByKey(max)

然后加入它,但我只想要一个干净的操作,它找到按键分组的最大值 2,然后 return 与这些值关联的整个 RDD。

我也不想在任何情况下将数据放入数据框中

谢谢

试试这个:

>>> 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))