Skip to content

count_min_sketch(col, eps, confidence, seed)

Описание

Функция count_min_sketch() создает структуру данных Count-Min Sketch для приблизительного подсчета частоты элементов в столбце. Это полезно для анализа больших наборов данных, где точный подсчет может быть слишком ресурсоемким.

Параметры

  • col: Column - столбец для создания Count-Min Sketch
  • eps: 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()