删除在 pyspark 或 pysql 中包含特殊字符(如“/”)的行

remove rows which contain special character like '/' in pyspark or pysql

我的数据包含 A 列

A
107/108
105
103
103/104

输出应该是这样的:-

105
103

我在 pyspark 和 pysql 中尝试了很多过滤功能,但代码不起作用

您可以将 rlike,like,contains 函数与 negation (~)

一起使用
df=spark.createDataFrame([('107/108',),('105',),('103',),('103/104',)],['A'])
df.show()
#+-------+
#|      A|
#+-------+
#|107/108|
#|    105|
#|    103|
#|103/104|
#+-------+

from pyspark.sql.functions import *
#using rlike function
df.filter(~col("A").rlike("\/")).show()

#using like function
df.filter(~col("A").like("%/%")).show()

#using contains function
df.filter(~col("A").contains("/")).show()
#+---+
#|  A|
#+---+
#|105|
#|103|
#+---+

UPDATE:

df=spark.createDataFrame([('107/108',),('105',),('103',),('103/104',),('',)],['A'])
df.show()
#+-------+
#|      A|
#+-------+
#|107/108|
#|    105|
#|    103|
#|103/104|
#|       |
#+-------+

df.filter(~col("A").rlike("\/")).show()
df.filter(~col("A").like("%/%")).show()
df.filter(~col("A").contains("/")).show()
#+---+
#|  A|
#+---+
#|105|
#|103|
#|   |
#+---+