在 Scala(Spark 数据帧)中的 window 上应用 approxQuantile

Applying approxQuantile on a window in Scala (Spark dataframe)

据我了解,可以通过 df.stat.approxQuantile

是否可以计算按特定列划分的 window 的分位数?

因为我希望获得特定的分位数,方法 percent_rank() - 可以应用于 window 的方法 - 无法完成此操作。

如果你知道这个 "certain column" 值你可以这样做:

for (value <- certainColumnValueList){
    val apQuantile = df.select($"certain_column" === value).stat.approxQuantile(...)
    // Do something with this result like appending it on a Map
    // as (value -> apQuantile) ...
}

如果您想使用 window,您必须定义自己的函数来计算此分位数并将其定义为 UDAF(用户定义的聚合函数)。

希望这对您的问题有所帮助。