【发布时间】:2021-03-27 00:02:54
【问题描述】:
我有以下要转换为 pyspark 的 SQL 查询。我想取两列 pp 和 gender 并在 pyspark 中执行以下操作
%sql
SELECT pp
, SUM(CASE WHEN Gender = 'M'
THEN 1.0 ELSE 0.0 END) /
COUNT(1) AS gender_score
, count(1) AS total
FROM df
WHERE gender in ('M', 'F')
GROUP BY pp
HAVING count(1) > 100
我试过了
from pyspark.sql.functions import expr
test_df = df.withColumn("gender_score", expr("CASE WHEN Gender == 'M' THEN 1 WHEN Gender == 'F' THEN 0 ELSE 'other' END AS male_score"))
但我不知道如何在 pyspark 中仅选择 2 列并将上述 SQL 查询复制到 pyspark
提前致谢
【问题讨论】:
标签: sql apache-spark pyspark count aggregation