approxCountDistinct(col[, rsd])
Описание
Функция approxCountDistinct() возвращает приблизительное количество уникальных значений в столбце. Параметр rsd (relative standard deviation) определяет точность приближения.
Параметры
col: Column - столбец для подсчета уникальных значенийrsd: double (опционально) - относительное стандартное отклонение (по умолчанию 0.05)
Возвращаемое значение
Long - приблизительное количество уникальных значений
Пример использования
from pyspark.sql.functions import approxCountDistinct
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("approxCountDistinct_example").getOrCreate()
# Создаем DataFrame
data = [
    (1,),
    (2,),
    (2,),
    (3,),
    (3,),
    (3,),
    (4,),
    (5,),
    (6,),
    (7,),
    (8,),
    (9,),
    (10,)
]
df = spark.createDataFrame(data, ["value"])
# Используем approxCountDistinct с разными значениями rsd
result = df.agg(
    approxCountDistinct("value").alias("default_rsd"),
    approxCountDistinct("value", 0.01).alias("high_precision"),
    approxCountDistinct("value", 0.1).alias("low_precision")
).show()
# Результат:
# +------------+---------------+-------------+
# |default_rsd |high_precision|low_precision|
# +------------+---------------+-------------+
# |10          |10            |10           |
# +------------+---------------+-------------+
 Примечания
- Чем меньше значение rsd, тем выше точность, но больше потребление памяти
 - Для точного подсчета уникальных значений используйте 
countDistinct() - Для подсчета всех значений используйте 
count() - Для подсчета ненулевых значений используйте 
count_if()