Python 删除pyspark或pysql中包含“/”等特殊字符的行
我有一个包含A列的数据Python 删除pyspark或pysql中包含“/”等特殊字符的行,python,apache-spark,pyspark,apache-spark-sql,pyspark-dataframes,Python,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Dataframes,我有一个包含A列的数据 A 107/108 105 103 103/104 输出应如下所示:- 105 103 我在pyspark和pysql中尝试了很多过滤函数,但代码不起作用~ 更新: 执行时给我一个错误'NoneType'对象没有属性'filter'Hi在验证数据时你的表达式也会删除空行,那么还有其他方法吗?@codetech,我用空行测试用例更新了答案,表达式没有删除空行。。! df=spark.createDataFrame([('107/108',),('105',),('103
A
107/108
105
103
103/104
输出应如下所示:-
105
103
我在pyspark和pysql中尝试了很多过滤函数,但代码不起作用~
更新:
执行时给我一个错误'NoneType'对象没有属性'filter'Hi在验证数据时你的表达式也会删除空行,那么还有其他方法吗?@codetech,我用空行测试用例更新了答案,表达式没有删除空行。。!
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|
#+---+
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|
#| |
#+---+