Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí nový sloupec, který odhaduje přibližný počet jedinečných prvků v zadaném sloupci nebo skupině sloupců.
Syntaxe
from pyspark.sql import functions as sf
sf.approx_count_distinct(col, rsd=None)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column nebo název sloupce |
Popisek sloupce pro počítání jedinečných hodnot. |
rsd |
float, volitelné | Maximální povolená relativní směrodatná odchylka (výchozí hodnota = 0,05). Pokud by rsd < 0.01, bylo by efektivnější používat count_distinct. |
Návraty
pyspark.sql.Column: Nový objekt Column představující přibližný jedinečný počet.
Examples
Příklad 1: Počítání jedinečných hodnot v datovém rámci s jedním sloupcem představujícím celá čísla
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|
+----------------------------+
Příklad 2: Počítání jedinečných hodnot v jednom sloupci Datový rámec představující řetězce
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|
+----------------------------+
Příklad 3: Počítání jedinečných hodnot v datovém rámci s více sloupci
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|
+-------------------------------+
Příklad 4: Počítání jedinečných hodnot se zadanou relativní směrodatnou odchylkou
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|
+----------------+------------+