python: уменьшить на ключ с условным оператором if? - PullRequest
0 голосов
/ 17 января 2019
(K1, (v1, v2))
(K2, (v3, v4))
(K1, (v1, v5))
(K2, (v3, v6))

Как можно суммировать значения ключа, если первое значение равно некоторому или равно такому, что я получаю (k1, (v1, v2 + v5), (k2, (v3, v4 + v6)?

1 Ответ

0 голосов
/ 17 января 2019

IIUC, вам нужно изменить ключ до reduce, а затем отобразить ваши значения обратно в желаемом формате.

Вы должны быть в состоянии сделать следующее:

new_rdd = rdd.map(lambda row: ((row[0], row[1][0]), row[1][1]))\
    .reduceByKey(sum).
    .map(lambda row: (row[0][0], (row[0][1], row[1])))
...