python - 通过排除使用 isin 过滤 pyspark 数据帧

标签 python apache-spark pyspark pyspark-sql

我正在尝试获取数据框中的所有行,其中列值不在列表中(因此通过排除进行过滤)。

举个例子:

df = sqlContext.createDataFrame([('1','a'),('2','b'),('3','b'),('4','c'),('5','d')]
,schema=('id','bar'))

我得到数据框:

+---+---+
| id|bar|
+---+---+
|  1|  a|
|  2|  b|
|  3|  b|
|  4|  c|
|  5|  d|
+---+---+

我只想排除 bar 为('a' 或 'b')的行。

使用 SQL 表达式字符串会是:

df.filter('bar not in ("a","b")').show()

有没有一种方法可以不使用 SQL 表达式的字符串,或者一次排除一个项目?

编辑:

我可能有一个列表 ['a','b'],其中包含我想使用的排除值。

最佳答案

看起来 ~ 提供了我需要的功能,但我还没有找到任何合适的文档。

df.filter(~col('bar').isin(['a','b'])).show()



+---+---+
| id|bar|
+---+---+
|  4|  c|
|  5|  d|
+---+---+

关于python - 通过排除使用 isin 过滤 pyspark 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775281/

相关文章:

python - 如何将 .ipynb 文件上传到笔记本云实例?

python - 优化Spark数值函数(python)

dataframe - 如何更改pyspark数据框列数据类型?

python - 在 pyspark 中运行脚本时缺少应用程序资源

java - Firebase - 存储货币类型值

python - 只保留每组元素中相互匹配的一个元素

python - 从维基百科 API 中提取表数据

scala - 结构化流 - Foreach Sink

apache-spark - SparkSQL 与 Hive on Spark - 区别和优缺点?

python - PySpark:TypeError: 'Column' 对象不可调用