在 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(用户定义的聚合函数)。
希望这对您的问题有所帮助。
据我了解,可以通过 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(用户定义的聚合函数)。
希望这对您的问题有所帮助。