Hadoop 连接RDD中的特定行
我有这样一个RDD:Hadoop 连接RDD中的特定行,hadoop,apache-spark,pyspark,Hadoop,Apache Spark,Pyspark,我有这样一个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',
[('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)]
我需要将paris\u 1
,paris\u 2
,paris\u 3
合并成一行,名为paris
我完全不知道如何进行,也没有找到任何答案
您能帮助我吗?您可以使用正则表达式从当前关键字值中获取城市名称,然后按关键字减少:
重新导入
rdd\
.map(lambda l:(re.sub('[_0-9]','',l[0]),l[1]))\
.reduceByKey(λx,y:x+y)\
[(‘愤怒’,166),
(‘里昂’,193年),
('nice',203),
(《巴黎》,1568年),
('troyes',214),
(《马赛》,515),
('nantes',207),
('orlean',196年),
('rennes',180),
('toulouse',177)]
您可以使用正则表达式从当前键值中获取城市名称,然后按键减少:
重新导入
rdd\
.map(lambda l:(re.sub('[_0-9]','',l[0]),l[1]))\
.reduceByKey(λx,y:x+y)\
[(‘愤怒’,166),
(‘里昂’,193年),
('nice',203),
(《巴黎》,1568年),
('troyes',214),
(《马赛》,515),
('nantes',207),
('orlean',196年),
('rennes',180),
('toulouse',177)]
是否要在此RDD的基础上进行缩减?但是用很少的键对吗?你想在这个RDD上做一个reduce吗?但是钥匙很少,对吗?