2017-10-15 8 views
0

私はこのようなRDD持っている:私はparisと呼ばれる1行にparis_1paris_2paris_3をマージする必要が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)] 

を。

私は厳密にどのように進行するのかわかりませんし、何の答えも見つかりませんでした。

私を助けることができますか?

+0

あなたはこのRDDの上に削減をしたいですか?しかし、いくつかのキーが正しい? –

答えて

2

あなたはキーによって削減、その後、現在のキー値から都市名を取得するには、正規表現を使用することができます。

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)] 
関連する問題