在 Pyspark 中计算 avg、stddev 和 IQR

问题描述 投票:0回答:1

我想计算按日期、bin、depot 和状态类型分组的聚合列 (count_scans) 的平均值、标准差以及 Q1 和 Q2。在 pyspark 中如何做到这一点? 代码片段:

提前致谢!

pyspark group-by aggregate average standard-deviation
1个回答
0
投票

也许尝试这样的事情,

    import pyspark.sql.functions as F
    
    # Group by date, depot, bin, and status
    grouped_df = df.groupBy('date', 'depot', 'bin', 'status')
    
    # Calculate desired statistics in one line
    stats = grouped_df.agg(
        F.count('id').alias('count_scans'),
        F.avg('count').alias('avg_count_scans'),
        F.stddev('count').alias('stddev_count_scans'),
        F.expr("percentile_approx(count, 0.25)").alias("percentile_25"),
        F.expr("percentile_approx(count, 0.75)").alias("percentile_75"),
    )
    
    # Display results
    stats.show()

希望这有帮助,我还没有尝试过这段代码,而且我对 pyspark 还很陌生,所以我不确定它是否正确。

© www.soinside.com 2019 - 2024. All rights reserved.