Удалить пустые строки из кортежа RDD - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть СДР в форме (name,[token1, token2, ...]) с ключом name и значениями token.Например: (Robert,['hello', 'movie', '', 'cinema']) и я хотел бы удалить пустые строки в значениях, используя map.

Моя попытка была:

new_tuple = tuple.map(lambda x: (x[0], [s for s in x[1] if len(s)>0]))

, чтобы получить (Robert,['hello', 'movie', 'cinema'])

Но я чувствую, что есть менее излишний способ сделать это?

После этого я хочу удалить элементы, которые могут остаться без каких-либо значений (токенов) после моей вышеописанной операции, будет ли работать следующая?:

final_tuple = new_tuple.filter(lambda x: len(x[1])>0)

1 Ответ

0 голосов
/ 20 февраля 2019

Попробуйте это: a = (Robert,['hello', 'movie', '', 'cinema'])

затем a = (a[0], list(filter(None, a[1])))

Это лучший способ удалить None, False, 0, "", '' из последовательности

...