使用 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))
我有一个包含 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))