Доступ к кортежу внутри RDD Pyspark - PullRequest
0 голосов
/ 30 сентября 2018

Ввод:

('MechanicalKeyboards', 2, 'ForgetfulDoryFish')
('MechanicalKeyboards', 1, 'cheshire26')
('MechanicalKeyboards', 1, 'Sygaldry')
('scala', 5, 'hyperforce')
('xkcd', 3, 'brinjal66')
('MechanicalKeyboards', 1, 'Sygaldry')
('MechanicalKeyboards', 1, 'DzyDzyDino')

Это мой СДР.

С-е = lines.filter(lambda x: 'e' in lines[0])

Желаемый выход:

('MechanicalKeyboards', 2, 'ForgetfulDoryFish')
('MechanicalKeyboards', 1, 'cheshire26')
('MechanicalKeyboards', 1, 'Sygaldry')
('MechanicalKeyboards', 1, 'Sygaldry')
('MechanicalKeyboards', 1, 'DzyDzyDino')

Я пытаюсь отфильтровать все элементы, которые не содержат 'e' в первом элементе кортежа RDD. Возможно ли это?

1 Ответ

0 голосов
/ 30 сентября 2018

Я думаю, что вы можете сделать, как показано ниже

>>> rdd = sc.parallelize([
...     ('MechanicalKeyboards', 2, 'ForgetfulDoryFish'),
...     ('MechanicalKeyboards', 1, 'cheshire26'),
...     ('MechanicalKeyboards', 1, 'Sygaldry'),
...     ('scala', 5, 'hyperforce'),
...     ('xkcd', 3, 'brinjal66'),
...     ('MechanicalKeyboards', 1, 'Sygaldry'),
...     ('MechanicalKeyboards', 1, 'DzyDzyDino')
...     ])
>>> 
>>> rdd.filter(lambda x: True if 'e' in x[0] else False).collect()
[('MechanicalKeyboards', 2, 'ForgetfulDoryFish'), ('MechanicalKeyboards', 1, 'cheshire26'), ('MechanicalKeyboards', 1, 'Sygaldry'),     ('MechanicalKeyboards', 1, 'Sygaldry'), ('MechanicalKeyboards', 1, 'DzyDzyDino')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...