Wie berechnet man das Perzentil der Spalte in einem DataFrame im Spark?

Ich versuche, das Perzentil einer Spalte in einem DataFrame zu berechnen. Ich kann keine Percentile_approx-Funktion in Spark-Aggregationsfunktionen finden.

Für z.B. in Hive haben wir percentile_approx und wir können es auf folgende Weise benutzen

hiveContext.sql("select percentile_approx("Open_Rate",0.10) from myTable); 

Aber ich möchte es aus Leistungsgründen mit Spark DataFrame machen.

Beispieldatensatz

|User ID|Open_Rate|
------------------- 
|A1     |10.3     |
|B1     |4.04     |
|C1     |21.7     |
|D1     |18.6     |

Ich möchte herausfinden, wie viele Benutzer in 10 oder 20 Prozent fallen und so weiter. Ich möchte so etwas tun

df.select($"id",Percentile($"Open_Rate",0.1)).show

Antworten auf die Frage(4)

Ihre Antwort auf die Frage