在Spark Python中配对RDD值过滤可得到空结果

时间:2018-06-26 08:01:07

标签: python apache-spark

我使用了以下代码:

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''),....

我想按值= OK的列表中的第二列进行过滤。 我尝试过

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

但这不会返回任何结果。

1 个答案:

答案 0 :(得分:0)

该值为list,因此您应该对其进行迭代:

resultRDD.filter(lambda x: any(y == "OK" for _, y in x[1]))