如何使用排除列表(类似于isin)过滤掉RDD中的元素?

巴布

我正在尝试使用类似于isinDataframe中的列表中的元素来过滤arraybuffer。

val booksDF: DataFrame = ...
val Books_Category = List("A","B","C")
val action_books = booksDF.filter($"bk_category_cd" isin (Books_Category: _*))

如何在RDD上使用集合应用相同的过滤器?

拉梅什·马哈然(Ramesh Maharjan)

在RDD中,您可以使用contains方法将列表filter移出。

假设你有dataframe喜欢

+-----+
|books|
+-----+
|A    |
|D    |
|B    |
+-----+

并列为

val Books_Category = List("A","B","C")

您可以使用containsrdd

val filteredRDD = df.rdd.filter(x=>Books_Category.contains(x(0)))
filteredRDD.foreach(println)

这应该导致

[A]
[B]

RDD本身做的也一样

假设我们有RDDlistfilter作为

val rdd = sc.parallelize(Seq("A", "D", "B", "E", "F"))
val list = List("A","B","C")

然后像上面一样做

val filteredRDD = rdd.filter(x => list.contains(x))
filteredRDD.foreach(println)

会导致

A
B

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章