percentile_approx

Sıralı percentile değerlerdeki en küçük değer olan sayısal sütunun col yaklaşık col değerini döndürür (en azdan en büyüğe doğru sıralanır), bu değerden percentagecol daha fazla değerden küçük veya bu değere eşit değildir.

Sözdizimi

from pyspark.sql import functions as sf

sf.percentile_approx(col, percentage, accuracy=10000)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Giriş sütunu.
percentage pyspark.sql.Column, float, floats listesi veya floats demet Ondalık yüzde (0,0 ile 1,0 arasında olmalıdır). Yüzde bir dizi olduğunda, her değer 0,0 ile 1,0 arasında olmalıdır.
accuracy pyspark.sql.Column veya int Bellek maliyetinde yaklaşık doğruluğu denetleyen pozitif sayısal değişmez değer. Daha yüksek değer daha iyi doğruluk sağlar. 1.0/doğruluk göreli hatadır (varsayılan: 10000).

İade

pyspark.sql.Column: sayısal sütunun yaklaşık percentile değeri.

Örnekler

Örnek 1: Yaklaşık yüzdebirlik değerleri hesaplama

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_approx("value", [0.25, 0.5, 0.75], 1000000)
).show(truncate=False)
+----------------------------------------------------------+
|percentile_approx(value, array(0.25, 0.5, 0.75), 1000000) |
+----------------------------------------------------------+
|[0.7264430125286..., 9.98975299938..., 19.335304783039...]|
+----------------------------------------------------------+

Örnek 2: Gruba göre yaklaşık yüzdebirlik değeri hesaplama

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_approx("value", sf.lit(0.5), sf.lit(1000000))
).sort("key").show()
+---+--------------------------------------+
|key|percentile_approx(value, 0.5, 1000000)|
+---+--------------------------------------+
|  0|                  -0.03519435193070...|
|  1|                     9.990389751837...|
|  2|                    19.967859769284...|
+---+--------------------------------------+