pyspark dataframe filter by column value like

您好!要在 PySpark DataFrame 中按列值进行筛选,您可以使用 filter 方法,结合 Spark SQL 的 like 操作符来实现模糊匹配。具体操作如下:

首先,假设您有一个 PySpark DataFrame,其中包含了一个名为 name 的列,您希望按照该列的值来筛选出符合条件的行。以下是一个简单的示例 DataFrame:

from pyspark.sql import SparkSession
# 创建 SparkSession 对象
spark = SparkSession.builder.appName("example").getOrCreate()
# 创建示例 DataFrame
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35), ("David", 40)]
df = spark.createDataFrame(data, ["name", "age"])
df.show()

输出如下:

+-------+---+
|   name|age|
+-------+---+
|  Alice| 25|
|    Bob| 30|
|Charlie| 35|
|  David| 40|
+-------+---+

接下来,假设您想要筛选出名字中包含字符 "a" 的行,您可以使用 filter 方法和 like 操作符来实现。具体操作如下:

# 使用 filter 和 like 实现模糊匹配
result = df.filter(df.name.like("%a%"))
result.show()

输出如下:

+-------+---+
|   name|age|
+-------+---+
|  Alice| 25|
|Charlie| 35|
|  David| 40|
+-------+---+

上述代码中的 % 符号表示任意字符,因此 %a% 表示匹配任何包含字符 "a" 的字符串。您也可以根据需要自定义匹配规则,例如 %ab% 表示匹配任何包含字符串 "ab" 的字符串。

希望这个回答对您有所帮助。

  •