rdd.filter()对于spark-2.0.1无法正常工作

rdd.filter()对于spark-2.0.1无法正常工作,filter,pyspark,Filter,Pyspark,我想在字符串值之后过滤掉RDD的元素,如中所示: est_rdd = est_rdd.filter(lambda kv: kv[0] !=name_to_filter ) 但是,我看到过滤后的元素仍然在est\u rdd中。在这种情况下,我需要为下一步清除重新分区。但这是一个耗时的操作。我应该如何避免重新分区?有什么帮助吗?Spark已经过仔细的测试,所以我会排除Spark不工作的可能性 检查所需字符串name\u to\u filter是否与键中的字符串完全匹配。有时有些细微的差异是你忽略的

我想在字符串值之后过滤掉
RDD
的元素,如中所示:

est_rdd = est_rdd.filter(lambda kv: kv[0] !=name_to_filter )

但是,我看到过滤后的元素仍然在
est\u rdd
中。在这种情况下,我需要为下一步清除重新分区。但这是一个耗时的操作。我应该如何避免重新分区?有什么帮助吗?

Spark已经过仔细的测试,所以我会排除Spark不工作的可能性


检查所需字符串
name\u to\u filter
是否与键中的字符串完全匹配。有时有些细微的差异是你忽略的

你能提供一个rdd的小例子吗?奇怪的是,您的筛选操作无法正常工作。您的响应会受到影响。上一步是一个平面映射操作,其中包含[filename,value1,value2],我将文件名用作键。它实际上是匹配的,但如果我不重新分区,它会在rdd中保留匹配的元素。我已经作为本地模式进行了测试。就连我似乎也面临着这个问题。
DF
上的我的字符串比较
filter
推送了一些不正确的结果(spark 2.3.0)。这与分区或rdd的沿袭有关吗?你做了什么?@void,我做了这个
est\u rdd=est\u rdd.filter(lambda kv:kv[0]!=name\u to\u filter)//est\u rdd=est\u rdd.repartition(npartitions)
但是记住这是一个代价高昂的操作,重新分区如何帮助你过滤出错误的结果?我没有得到那个部分。嗨,路易斯,我已经测试了本地模式,它实际上是匹配的,但保留了匹配的一个。我测试了好几次spark 2.0.1从源代码版本构建。在我的例子中,直接过滤确实有些问题。但是,在zipwithindex之后,它在不重新分区的情况下工作良好……并且使用索引范围作为,filtered_rdd=temprdd.filter(lambda(key,index):范围内的key(start,end+1))