gpt4 book ai didi

sql - pyspark sql 查询 : count distinct values with conditions

转载 作者:行者123 更新时间:2023-12-04 20:13:10 24 4
gpt4 key购买 nike

我有一个如下的数据框:

+-----------+------------+-------------+-----------+
| id_doctor | id_patient | consumption | type_drug |
+-----------+------------+-------------+-----------+
| d1 | p1 | 12.0 | bhd |
| d1 | p2 | 10.0 | lsd |
| d1 | p1 | 6.0 | bhd |
| d1 | p1 | 14.0 | carboxyl |
| d2 | p1 | 12.0 | bhd |
| d2 | p1 | 13.0 | bhd |
| d2 | p2 | 12.0 | lsd |
| d2 | p1 | 6.0 | bhd |
| d2 | p2 | 12.0 | bhd |
+-----------+------------+-------------+-----------+

我想计算每位医生服用 bhd 且消费 < 16.0 的不同患者。

我尝试了以下查询,但不起作用:
dataframe.groupBy(col("id_doctor"))
.agg(
countDistinct(col("id_patient")).where(col("type_drug") == "bhd" & col("consumption") < 16.0)
)

有什么帮助吗?

谢谢!

最佳答案

PySpark 中的另一种解决方案,无需添加另一列:

dataframe.groupBy('id_doctor').agg(F.countDistinct(F.when(col("type_drug") == "bhd" & col("consumption") < 16.0, col('id_doctor')).otherwise(None)))

关于sql - pyspark sql 查询 : count distinct values with conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com