You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark DataFrame中分组后按计数进行过滤?

PySpark分组后过滤计数小于指定值的行

首先,你的原始DataFrame定义及展示代码如下:

data = [("1", "a"), ("2", "a"), ("3", "b"), ("4", "a")]
df = spark.createDataFrame(data).toDF(*("id", "name"))
df.show()

输出:

+---+----+
| id|name|
+---+----+
|  1|   a|
|  2|   a|
|  3|   b|
|  4|   a|
+---+----+

分组统计的代码及输出:

grouped_df = df.groupBy("name").count()
grouped_df.show()

输出:

+----+-----+
|name|count|
+----+-----+
|   a|    3|
|   b|    1|
+----+-----+

要过滤出计数小于3的行,直接对分组后的DataFrame使用filter或where方法即可,两种方式效果一致:

方式1:使用SQL表达式字符串

filtered_df = grouped_df.filter("count < 3")
# 等价写法:filtered_df = grouped_df.where("count < 3")
filtered_df.show()

方式2:使用列对象(类型更安全)

先导入col函数,再基于列对象进行条件判断:

from pyspark.sql.functions import col

filtered_df = grouped_df.filter(col("count") < 3)
filtered_df.show()

两种方式最终都会得到目标结果:

+----+-----+
|name|count|
+----+-----+
|   b|    1|
+----+-----+

内容的提问来源于stack exchange,提问作者armin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:10:49