count_min_sketch(col, eps, confidence, seed)
Описание
Функция count_min_sketch()
создает структуру данных Count-Min Sketch для приблизительного подсчета частоты элементов в столбце. Это полезно для анализа больших наборов данных, где точный подсчет может быть слишком ресурсоемким.
Параметры
col
: Column - столбец для создания Count-Min Sketcheps
: Double - относительная погрешность (например, 0.01 для 1% погрешности)confidence
: Double - уровень достоверности (например, 0.95 для 95% достоверности)seed
: Long - начальное значение для генератора случайных чисел
Возвращаемое значение
Binary - бинарное представление Count-Min Sketch
Пример использования
from pyspark.sql.functions import count_min_sketch
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("count_min_sketch_example").getOrCreate()
# Создаем DataFrame
data = [
("A", 1),
("A", 1),
("A", 2),
("B", 3),
("B", 3),
("B", 3),
("B", 4)
]
df = spark.createDataFrame(data, ["group", "value"])
# Создаем Count-Min Sketch
result = df.groupBy("group").agg(
count_min_sketch("value", 0.01, 0.95, 42).alias("sketch")
).show()
# Результат:
# +-----+--------------------+
# |group|sketch |
# +-----+--------------------+
# |A |[B@1234567890...] |
# |B |[B@0987654321...] |
# +-----+--------------------+
Примечания
- Count-Min Sketch - это вероятностная структура данных, которая может давать ложные срабатывания
- Меньшие значения eps дают более точные результаты, но требуют больше памяти
- Более высокие значения confidence уменьшают вероятность ошибки
- Для точного подсчета используйте
count()
- Для подсчета уникальных значений используйте
countDistinct()