在RDD Spark中查找元素

时间:2016-03-02 23:21:15

标签: scala apache-spark rdd

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

例如:

sc.parallelize(Array(Array(4,2,6),Array(2,5),Array(1, 2, 3), Array(1, 2, 6)))

使用特定值在RDD中查找数组(1,2,3)并将其删除,这是可能的 提前致谢

1 个答案:

答案 0 :(得分:1)

如果你想删除RDD的一行,那么你应该使用filter的方法RDDdocumentation个状态:

  

返回一个只包含满足谓词的元素的新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))