【问题标题】:count and distinct count without groupby using PySpark使用 PySpark 不使用 groupby 的计数和不同计数
【发布时间】:2018-06-04 21:26:06
【问题描述】:

我有一个数据框 (testdf) 并希望在另一列 (booking/rental) 不为空或不为空的列 (memid) 上获取计数和不同计数(即。 "")

testdf:

memid   booking  rental
100        Y 
100
120        Y
100        Y       Y

预期结果:(对于预订栏不为空/不为空)

count(memid)  count(distinct memid)
      3                      2

如果是 SQL:

Select count(memid), count(distinct memid) from mydf 
where booking is not null and booking!= ""

在 PySpark 中:

mydf.filter("booking!=''").groupBy('booking').agg(count("patid"), countDistinct("patid"))

但我只想要总体计数,而不是按...分组。

【问题讨论】:

    标签: python pyspark pyspark-sql


    【解决方案1】:

    您可以删除GroupBy 并直接使用agg
    像这样。

    from pyspark.sql import functions as F 
    mydf=mydf.filter("booking!=''").agg(F.count("patid"), F.countDistinct("patid"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2018-10-24
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多