Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Devuelve los percentiles exactos de la columna expr numérica en los porcentajes especificados con el intervalo de valores en [0,0, 1,0].
Syntax
from pyspark.sql import functions as sf
sf.percentile(col, percentage, frequency=1)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column o str |
Columna numérica. |
percentage |
pyspark.sql.Column, float, lista de floats o tupla de floats |
Porcentaje en decimal (debe estar comprendido entre 0,0 y 1,0). |
frequency |
pyspark.sql.Column o int |
Literal numérico positivo que controla la frecuencia (valor predeterminado: 1). |
Devoluciones
pyspark.sql.Column: el valor exacto percentile de la columna numérica.
Examples
Ejemplo 1: Cálculo de varios percentiles
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...]|
+--------------------------------------------------------+
Ejemplo 2: Cálculo del percentil por grupo
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...|
+---+-------------------------+