2024-05-03 16:26:11 发布
网友
使用Spark 2.1.1
下面是我的数据框
id Name1 Name2 1 Naveen Srikanth 2 Naveen Srikanth123 3 Naveen 4 Srikanth Naveen
现在需要根据两个条件过滤行,即2和3需要被过滤掉,因为name有数字123,3有空值
使用下面的代码仅筛选行id 2
df.select("*").filter(df["Name2"].rlike("[0-9]")).show()
被困在第二种情况下。
应该是简单的将多个条件放入过滤器。
val df = List( ("Naveen", "Srikanth"), ("Naveen", "Srikanth123"), ("Naveen", null), ("Srikanth", "Naveen")).toDF("Name1", "Name2") import spark.sqlContext.implicits._ df.filter(!$"Name2".isNull && !$"Name2".rlike("[0-9]")).show
或者如果您不喜欢使用spark sql $:
$
df.filter(!df("Name2").isNull && !df("Name2").rlike("[0-9]")).show
或者在Python中:
df.filter(df["Name2"].isNotNull() & ~df["Name2"].rlike("[0-9]")).show()
做以下事情应该能解决你的问题
from pyspark.sql.functions import col df.filter((!col("Name2").rlike("[0-9]")) | (col("Name2").isNotNull))
应该是简单的将多个条件放入过滤器。
或者如果您不喜欢使用spark sql
$
:或者在Python中:
做以下事情应该能解决你的问题
相关问题 更多 >
编程相关推荐