Skip to content

corr(col1, col2)

Описание

Функция corr() вычисляет коэффициент корреляции Пирсона между двумя числовыми столбцами. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col1: Column - первый числовой столбец
  • col2: Column - второй числовой столбец

Возвращаемое значение

Double - коэффициент корреляции Пирсона (от -1 до 1)

Пример использования

from pyspark.sql.functions import corr
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("corr_example").getOrCreate()

# Создаем DataFrame
data = [
    ("A", 1, 2),
    ("A", 2, 4),
    ("A", 3, 6),
    ("B", 4, 8),
    ("B", 5, 10),
    ("B", 6, 12)
]
df = spark.createDataFrame(data, ["group", "x", "y"])

# Используем corr для вычисления корреляции
result = df.groupBy("group").agg(
    corr("x", "y").alias("correlation")
).show()

# Результат:
# +-----+------------+
# |group|correlation|
# +-----+------------+
# |A    |1.0        |
# |B    |1.0        |
# +-----+------------+

# Пример с отрицательной корреляцией
data = [
    ("A", 1, 6),
    ("A", 2, 4),
    ("A", 3, 2),
    ("B", 4, 12),
    ("B", 5, 10),
    ("B", 6, 8)
]
df = spark.createDataFrame(data, ["group", "x", "y"])

result = df.groupBy("group").agg(
    corr("x", "y").alias("correlation")
).show()

Примечания

  • Коэффициент корреляции равен 1 при полной положительной корреляции
  • Коэффициент корреляции равен -1 при полной отрицательной корреляции
  • Коэффициент корреляции равен 0 при отсутствии линейной зависимости
  • NULL значения игнорируются при вычислении
  • Для вычисления ковариации используйте covar_pop() или covar_samp()
  • Для вычисления регрессии используйте regr_slope() и regr_intercept()