在单个RDD中加入两个字符串以在pyspark中形成新的RDD

问题描述 投票:0回答:1

我有rdd&申请collection后,如下所示;

rdd = [('Amazon', '2016/01/09', '17:06:24', '17:10:03'),('Amazon', '2016/02/09', '17:06:55', '17:10:00'),('Amazon', '2016/02/09', '17:10:02', '17:19:00'),('Amazon', '2016/02/09', '17:13:09', '17:19:00'),('Aliexpress', '2016/03/09', '17:00:40', '17:23:00'),('Aliexpress', '2016/03/09', '17:03:50', '17:12:05'),('Aliexpress', '2016/03/09', '17:10:12', '17:12:38'),('Aliexpress', '2016/03/09', '17:13:23', '17:23:00')]

但是我想以某种方式转换rdd,使之在应用collection之后,我想看到如下所示的输出;

Newrdd = [('Amazon 01','17:06:24', '17:10:03'),('Amazon 02','17:06:55', '17:10:00'),('Amazon 02','17:10:02', '17:19:00'),('Amazon 02','17:13:09', '17:19:00'),('Aliexpress 09', '17:00:40', '17:23:00'),('Aliexpress 03', '17:03:50', '17:12:05'),('Aliexpress 03','17:10:12', '17:12:38'),('Aliexpress 03', '17:13:23', '17:23:00')]

例如,我想将Amazon01加入在一起(01是月份,来自“ 2016/01/09”)。

我喜欢这样;

Newrdd = rdd.map(lambda y: y[0].join((y[1].split('/')[1])))
print(Newrdd.collect())

但是我没有得到想要的输出集合。谁能告诉我为什么?

python python-3.x pyspark bigdata rdd
1个回答
0
投票

我能够解决以下问题;

Newrdd = rdd.map(lambda y: (y[0]+' '+y[1].split('/')[1], y[2], y[3]))
© www.soinside.com 2019 - 2024. All rights reserved.