据我所知,人们可以获得分位数 df.stat.approxQuantile
是否可以计算由某列分隔的窗口上的分位数?
因为,我希望获得特定的分位数,方法percent_rank() - 可以应用于窗口的方法 - 不能实现这一点。
答案 0 :(得分:1)
如果您知道"某些列" 值,您可以执行以下操作:
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) ...
}
如果要使用窗口,则必须定义自己的函数来计算此分位数,并将其定义为UDAF(用户定义的聚合函数)。
希望这有助于解决您的问题。