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()