您好!要在 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" 的字符串。
希望这个回答对您有所帮助。