Как преобразовать список списков RDD в один список в pyspark - PullRequest
2 голосов
/ 06 апреля 2020

У меня есть объект RDD, список списков, который выглядит следующим образом (пропущены миллионы подсписков, здесь осталось только 3)

my_tuples = [[('a','b'),('a','c')], 
             [('b','a'),('b','f'),('b','g')], 
             [('zzsx','c'), ('zzsx','q'), ('zzsx','m'), ('zzsx','ay'), ('zzsx','bbt')]]

, и я хочу преобразовать его в один список, подобный этому

my_list = [('a','b'),('a','c'), ('b','a'),('b','f'),('b','g'), 
           ('zzsx','c'), ('zzsx','q'), ('zzsx','m'), ('zzsx','ay'), ('zzsx','bbt')]

Я не могу использовать циклы, поскольку my_tuples является объектом RDD, а размер my_tuples слишком велик для этого. Я новичок, чтобы зажечь, любое предложение приветствуется. Спасибо.

1 Ответ

2 голосов
/ 06 апреля 2020

Вы можете сгладить его, используя flatMap:

rdd.flatMap(lambda l: l)

Поскольку ваши элементы являются списками, вы можете просто вернуть эти списки в функции, как это сделано в примере

[('a', 'b'),
 ('a', 'c'),
 ('b', 'a'),
 ('b', 'f'),
 ('b', 'g'),
 ('zzsx', 'c'),
 ('zzsx', 'q'),
 ('zzsx', 'm'),
 ('zzsx', 'ay'),
 ('zzsx', 'bbt')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...