У меня есть СДР (key, (val1,val2))
. Для этого rdd
я хотел бы применить функцию reduceByKey
, и мое требование - найти минимум val2
для одного ключа, а также извлечь val1
из полученного минимума val2
.
Например: (1,(a,4)),(2,(b,3)),(1,(c,2)),(2,(d,1))
В этом я хотел, чтобы результат был установлен как (1,(c,2)),(2,(d,1))
Я имею в виду ниже код Python, но здесь я получаю первый val1
, а не val1
, соответствующий минимуму val2
.
rdd2 = rdd1.map(lambda x:(x[0],(x[1],x[3])))
rdd3 = rdd2.reduceByKey(lambda x,y:(x[0],min(x[1],y[1])))
Пожалуйста, помогите мне изменить код заказа, чтобы получить желаемый результат.