¿Cómo calcular el percentil de la columna en un DataFrame en chispa?
Estoy tratando de calcular el percentil de una columna en un DataFrame? No puedo encontrar ninguna función percentile_approx en las funciones de agregación de Spark.
Por ej. en Hive tenemos percentile_approx y podemos usarlo de la siguiente manera
hiveContext.sql("select percentile_approx("Open_Rate",0.10) from myTable);
Pero quiero hacerlo usando Spark DataFrame por razones de rendimiento.
Conjunto de datos de muestra
|User ID|Open_Rate|
-------------------
|A1 |10.3 |
|B1 |4.04 |
|C1 |21.7 |
|D1 |18.6 |
Quiero saber cuántos usuarios caen en el percentil 10 o el percentil 20 y así sucesivamente. Quiero hacer algo como esto
df.select($"id",Percentile($"Open_Rate",0.1)).show