Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Belirtilen sütundaki veya sütun grubundaki öğelerin yaklaşık ayrı sayısını tahmin eden yeni bir Sütun döndürür.
Sözdizimi
from pyspark.sql import functions as sf
sf.approx_count_distinct(col, rsd=None)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
col |
pyspark.sql.Column veya sütun adı |
içinde ayrı değerleri saymak için sütunun etiketi. |
rsd |
float, isteğe bağlı | İzin verilen en yüksek göreli standart sapma (varsayılan = 0,05). rsd < 0,01 ise, count_distinct kullanmak daha verimli olacaktır. |
İade
pyspark.sql.Column: Yaklaşık benzersiz sayıyı temsil eden yeni bir Sütun nesnesi.
Örnekler
Örnek 1: Tamsayıları temsil eden tek bir sütundaki DataFrame'deki ayrı değerleri sayma
from pyspark.sql import functions as sf
df = spark.createDataFrame([1,2,2,3], "int")
df.agg(sf.approx_count_distinct("value")).show()
+----------------------------+
|approx_count_distinct(value)|
+----------------------------+
| 3|
+----------------------------+
Örnek 2: Dizeleri temsil eden tek bir sütundaki DataFrame'deki ayrı değerleri sayma
from pyspark.sql import functions as sf
df = spark.createDataFrame([("apple",), ("orange",), ("apple",), ("banana",)], ['fruit'])
df.agg(sf.approx_count_distinct("fruit")).show()
+----------------------------+
|approx_count_distinct(fruit)|
+----------------------------+
| 3|
+----------------------------+
Örnek 3: Birden çok sütun içeren bir DataFrame'de ayrı değerleri sayma
from pyspark.sql import functions as sf
df = spark.createDataFrame(
[("Alice", 1), ("Alice", 2), ("Bob", 3), ("Bob", 3)], ["name", "value"])
df = df.withColumn("combined", sf.struct("name", "value"))
df.agg(sf.approx_count_distinct(df.combined)).show()
+-------------------------------+
|approx_count_distinct(combined)|
+-------------------------------+
| 3|
+-------------------------------+
Örnek 4: Belirtilen göreli standart sapmayla ayrı değerleri sayma
from pyspark.sql import functions as sf
spark.range(100000).agg(
sf.approx_count_distinct("id").alias('with_default_rsd'),
sf.approx_count_distinct("id", 0.1).alias('with_rsd_0.1')
).show()
+----------------+------------+
|with_default_rsd|with_rsd_0.1|
+----------------+------------+
| 95546| 102065|
+----------------+------------+