Scala 在RDD Spark中查找元素

Scala 在RDD Spark中查找元素,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,是否有一种有效的方法可以在RDD中找到特定元素,然后将其删除 例如: sc.parallelize(数组(数组(4,2,6)、数组(2,5)、数组(1,2,3)、数组(1,2,6))) 在RDD中找到具有特定值的数组(1,2,3)并将其删除,是否可行 提前感谢如果要删除一行RDD,则应使用RDDs中的filter方法,状态为: 返回仅包含满足谓词的元素的新RDD 这意味着使用lambda中的表达式比较所有记录,如果它们满足条件,则保留它们,否则将从新的RDD中删除它们 val xrdd = s

是否有一种有效的方法可以在
RDD
中找到特定元素,然后将其删除

例如:

sc.parallelize(数组(数组(4,2,6)、数组(2,5)、数组(1,2,3)、数组(1,2,6)))
RDD
中找到具有特定值的数组(1,2,3)并将其删除,是否可行
提前感谢

如果要删除一行RDD,则应使用
RDD
s中的
filter
方法,状态为:

返回仅包含满足谓词的元素的新RDD

这意味着使用lambda中的表达式比较所有记录,如果它们满足条件,则保留它们,否则将从新的
RDD
中删除它们

val xrdd = sc.parallelize(Array(Array(1, 2, 3), Array(1, 2, 6)))
xrdd.filter(_.sameElements(Array(1, 2, 3))).take(3)
// Array(Array(1, 2, 6))

我不明白,你应该多解释一下。我已经纠正了我的问题。更一般地说,我想找到一个元素并从RDD中删除,因为RDD在技术上是不可变的,所以不能从中删除任何内容。您可以在不包含元素的RDD的基础上创建新的RDD@AlbertoBonsanto已经回答了这个问题(除非你只想删除第一个出现的?),它可能不是第一行。假设我们有1000条记录,我想找到特定的数组并删除它。@Nick你需要一个更好的例子。。。我还是不明白你的意思want@Nick他发布的代码没有过滤掉第一行,而是检查每个元素并过滤掉那些等于
数组(1,2,3)