Фильтрация парных значений RDD в Spark Python дает пустые результаты - PullRequest
0 голосов
/ 26 июня 2018

Я использовал следующий код:

resultRDD = (
    data 
    .flatMap(lambda sentence:sentence.split(","))  
    .map(lambda word: word.split("\t"))  
    .map(lambda x: (x[6],(x[16],x[1])))
    .groupByKey().mapValues(lambda x: list(x))

)

Для создания пары rdd:

[(u'$SRVEU2-SV1-PKS',
[(u'14', u''),
 (u'14', u'OK'),
 (u'14', u''),
 (u'14', u''),....

Я хотел бы отфильтровать по второму столбцу в списке, где значение = ОК. Я пытался

resultRDD.filter(lambda x: x[1] == 'OK')

Но это не возвращает никаких результатов.

1 Ответ

0 голосов
/ 26 июня 2018

Значение равно list, поэтому вы должны перебрать его:

resultRDD.filter(lambda x: any(y == "OK" for _, y in x[1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...