【问题标题】:How to aggregate median and standard deviation in PySpark? [duplicate]如何在 PySpark 中聚合中位数和标准差? [复制]
【发布时间】:2019-11-30 22:00:36
【问题描述】:

我有以下代码:

from pyspark.sql import functions as func

cols = ("id","size")

result = df.groupby(*cols).agg({
    func.max("val1"),
    func.median("val2"),
    func.std("val2")
})

但它在func.median("val2") 行中失败,并显示在func 中找不到median 的消息。 std 也是如此。

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-sql


    【解决方案1】:

    对于中位数,您应该使用 approxQuantile 表示 0.5。

    对于 std,您要查找的操作是 stddevstddev_sampstddev_pop。所有这些在文档中都很清楚。 https://spark.apache.org/docs/2.1.3/api/python/_modules/pyspark/sql/functions.html

    【讨论】:

    • 或者使用F.expr('percentile(val2, array(0.5))')[0]作为中位数。
    猜你喜欢
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2020-11-21
    相关资源
    最近更新 更多