PySpark按条件计数值

PySpark按条件计数值,第1张

PySpark按条件计数值

这里没有过滤器。双方

col("is_fav") == 1
col("is_fav") ==0)
都只是布尔表达式,并
count
不会真正关心他们的价值,只要它被定义。

您可以通过多种方法来解决此问题,例如,使用simple

sum

from pyspark.sql.functions import sum, absgpd = df.groupBy("f")gpd.agg(    sum("is_fav").alias("fv"),    (count("is_fav") - sum("is_fav")).alias("nfv"))

或将忽略的值设为未定义(也称为

NULL
):

exprs = [    count(when(col("is_fav") == x, True)).alias(c)    for (x, c) in [(1, "fv"), (0, "nfv")]]gpd.agg(*exprs)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5664554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存