使用scala删除列中包含特定值的spark dataframe行

a11xaf1n  于 2021-05-18  发布在  Spark
关注(0)|答案(2)|浏览(836)

我正在尝试删除sparkDataframe的行,这些行在特定行中包含特定值。例如,如果我有以下Dataframe´我想删除“a”列中有“2”的所有行。所以我´我想删除索引为1和2的行。我想使用Scala2.11和Spark2.4.0来实现这一点。

A      B   C
0    one    0   0
1    two    2   4
2    two    4   8
3    one    6  12
4  three    7  14

我试过这样的方法: df = df.filer(_.A != "two")df = df.filter(df("A") != "two") 不管怎样,这两个都不起作用。有什么建议吗?

eit6fx6z

eit6fx6z1#

尝试:

df.filter(not($"A".contains("two")))

或者如果你想找一个完全匹配的:

df.filter(not($"A".equalTo("two")))
zi8p0yeb

zi8p0yeb2#

我终于在一篇非常老的文章中找到了解决方案:有没有一种方法可以使用scala过滤sparkDataframe中不包含内容的字段?
做到这一点的诀窍如下: df = df.where(!$"A".contains("two")

相关问题