2017-10-15 2 views
0

ich eine RDD wie diese:bestimmte Zeilen in einem RDD

[('anger', 166), 
('lyon', 193), 
('marseilles_1', 284), 
('nice', 203), 
('paris_2', 642), 
('paris_3', 330), 
('troyes', 214), 
('marseilles_2', 231), 
('nantes', 207), 
('orlean', 196), 
('paris_1', 596), 
('rennes', 180), 
('toulouse', 177)] 

Ich brauche zu verschmelzen paris_1, paris_2, paris_3 in eine Reihe paris genannt.

Ich habe strikt keine Ahnung, wie es weitergehen soll und habe keine Antworten gefunden.

Können Sie mir helfen?

+0

Haben Sie oben auf dieser RDD eines reduzieren tun wollen? Aber mit wenigen Schlüsseln oder? –

Antwort

2

Sie können einen regulären Ausdruck verwenden, um Städtenamen aus dem aktuellen Schlüsselwert zu erhalten, dann mit Schlüssel reduzieren:

import re 
rdd\ 
    .map(lambda l: (re.sub('[_0-9]', '',l[0]), l[1]))\ 
    .reduceByKey(lambda x,y: x + y)\ 

    [('anger', 166), 
    ('lyon', 193), 
    ('nice', 203), 
    ('paris', 1568), 
    ('troyes', 214), 
    ('marseilles', 515), 
    ('nantes', 207), 
    ('orlean', 196), 
    ('rennes', 180), 
    ('toulouse', 177)] 
Verwandte Themen