Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Returnerar den exakta percentilen för den numeriska kolumnen expr vid angivna procentandelar med värdeintervallet [0,0, 1,0].
Syntax
from pyspark.sql import functions as sf
sf.percentile(col, percentage, frequency=1)
Parameterar
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column eller str |
Den numeriska kolumnen. |
percentage |
pyspark.sql.Column, float, list of floats or tuple of floats |
Procentandel i decimaltal (måste vara mellan 0,0 och 1,0). |
frequency |
pyspark.sql.Column eller int |
En positiv numerisk literal som styr frekvensen (standard: 1). |
Retur
pyspark.sql.Column: den exakta percentile numeriska kolumnen.
Examples
Exempel 1: Beräkna flera percentiler
from pyspark.sql import functions as sf
key = (sf.col("id") % 3).alias("key")
value = (sf.randn(42) + key * 10).alias("value")
df = spark.range(0, 1000, 1, 1).select(key, value)
df.select(
sf.percentile("value", [0.25, 0.5, 0.75], sf.lit(1))
).show(truncate=False)
+--------------------------------------------------------+
|percentile(value, array(0.25, 0.5, 0.75), 1) |
+--------------------------------------------------------+
|[0.7441991494121..., 9.9900713756..., 19.33740203080...]|
+--------------------------------------------------------+
Exempel 2: Beräkna percentil efter grupp
from pyspark.sql import functions as sf
key = (sf.col("id") % 3).alias("key")
value = (sf.randn(42) + key * 10).alias("value")
df = spark.range(0, 1000, 1, 1).select(key, value)
df.groupBy("key").agg(
sf.percentile("value", sf.lit(0.5), sf.lit(1))
).sort("key").show()
+---+-------------------------+
|key|percentile(value, 0.5, 1)|
+---+-------------------------+
| 0| -0.03449962216667...|
| 1| 9.990389751837...|
| 2| 19.967859769284...|
+---+-------------------------+