use*_*373 0 python filter apache-spark-sql pyspark
使用 Spark 2.1.1
下面是我的数据框
id Name1 Name2
1 Naveen Srikanth
2 Naveen Srikanth123
3 Naveen
4 Srikanth Naveen
Run Code Online (Sandbox Code Playgroud)
现在需要根据两个条件过滤行,即 2 和 3 需要过滤掉,因为名称有数字的 123 和 3 有空值
使用下面的代码只过滤行 id 2
df.select("*").filter(df["Name2"].rlike("[0-9]")).show()
Run Code Online (Sandbox Code Playgroud)
被卡住以包含第二个条件。
执行以下操作应该可以解决您的问题
from pyspark.sql.functions import col
df.filter((!col("Name2").rlike("[0-9]")) | (col("Name2").isNotNull))
Run Code Online (Sandbox Code Playgroud)