删除在 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|
#| |
#+---+
我的数据包含 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|
#| |
#+---+