首页 > 解决方案 > 根据另一列pyspark的不同值计算一列

问题描述

我有一个像这样的火花数据框

event_name | id
---------------
hello      | 1
hello      | 2
hello      | 1
world      | 1
hello      | 3
world      | 2

我想根据唯一的“id”计算特定事件“hello”的数量。SQL 应该如下所示

SELECT event_name, COUNT(DISTINCT id) as count
FROM table_name
WHERE event_name="hello"
event_name | count
------------------
hello      | 3

所以我的查询应该为“hello”返回 3 而不是 4,因为有两行 ID 为“1”的“hello”。

如何使用 pyspark SQL 做到这一点?

标签: pysparkapache-spark-sql

解决方案


这应该可以解决问题:

df.groupBy("event_name").agg(F.countDistinct("id")).show()

推荐阅读