spark 分层聚合方法rollup()实践应用
1、rollup()分层聚合方法 -实践1#in pythonfrom pyspark.sql.functions import count,min,max,avg,var_pop,stddev_pop,countDistinctdf.rollup("code")\.agg(countDistinct("user_id").alias("user_cnt"))\.select("code","us
·
1、rollup()分层聚合方法 -实践1
#in python
from pyspark.sql.functions import count,min,max,avg,var_pop,stddev_pop,countDistinct
df.rollup("code")\
.agg(countDistinct("user_id").alias("user_cnt"))\
.select("code","user_cnt")\
.orderBy("code")\
.show(200)
输出结果:
(1)第一行,code是null,这是对所有 user_id的统计
(2)第二行之后,code不是null,这是对按照code分组后的user_id的统计
2、rollup()分层聚合方法 -实践2
#in python
from pyspark.sql.functions import countDistinct
from pyspark.sql.functions import desc
df.rollup("code1","code2")\
.agg(countDistinct("user_id").alias("user_cnt"),
countDistinct("sku").alias("sku_cnt"))\
.orderBy(desc("code1"),"code2")\
.show(200)
输出结果:因为排序的关系,可以看到 总共有2层的 层次分组
(1)第一层层次是对全部数据的统计
(2)第二层层次是固定code1下的分层统计
更多推荐
已为社区贡献9条内容
所有评论(0)