pyspark - 根据另一列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 做到这一点?
解决方案
这应该可以解决问题:
df.groupBy("event_name").agg(F.countDistinct("id")).show()
推荐阅读
- react-native - 当变量发生变化时反应原生调用 useEffect
- javascript - 第一次迭代后 for 循环中的 Cypress 元素发生变化
- python - 用于 RSA 公开解密的 Python 库
- spring-boot - Spring Boot 中的后备消息文件始终为“en”
- git - 如何将推送的常规合并转换为 git 中的 squash-merge?
- javascript - 如何在 JavaScript 网站中转换我的 Kotlin 应用程序?
- firebase - Read single document field from Firestore (Flutter)
- python - 在 Flask/SQLAlchemy 中选择性地对 InstrumentedAttribute 执行数学计算
- sql - SQL连接查询,想获取连接表的最新记录(不匹配则为null)
- angular - 离子预览pdf文件