다음을 통해 공유


DataFrameStatFunctions 클래스

DataFrame을 사용하는 통계 함수에 대한 기능입니다.

Spark Connect 지원

문법

DataFrame.stat

메서드

메서드 설명
approxQuantile(col, probabilities, relativeError) DataFrame의 숫자 열의 대략적인 분위수를 계산합니다.
corr(col1, col2, method) 두 열의 상관 관계를 이중 값으로 계산합니다. 현재는 Pearson 상관 관계 계수만 지원합니다.
cov(col1, col2) 지정된 열의 샘플 공변도를 이중 값으로 계산합니다.
crosstab(col1, col2) 지정된 열의 쌍 단위 빈도 테이블을 계산합니다.
freqItems(cols, support) 가양성으로 열에 대한 빈번한 항목을 찾습니다.
sampleBy(col, fractions, seed) 각 계층에 지정된 분수에 따라 대체하지 않고 계층화된 샘플을 반환합니다.

예제

대략적 분위수

data = [(1,), (2,), (3,), (4,), (5,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
[1.0, 3.0, 5.0]

상관 관계

df = spark.createDataFrame([(1, 12), (10, 1), (19, 8)], ["c1", "c2"])
df.stat.corr("c1", "c2")
-0.3592106040535498

공분산

df = spark.createDataFrame([(1, 12), (10, 1), (19, 8)], ["c1", "c2"])
df.stat.cov("c1", "c2")
-18.0

교차 표

df = spark.createDataFrame([(1, 11), (1, 11), (3, 10), (4, 8), (4, 8)], ["c1", "c2"])
df.stat.crosstab("c1", "c2").sort("c1_c2").show()
+-----+---+---+---+
|c1_c2| 10| 11|  8|
+-----+---+---+---+
|    1|  0|  2|  0|
|    3|  1|  0|  0|
|    4|  0|  0|  2|
+-----+---+---+---+

빈번한 항목

from pyspark.sql import functions as sf

df = spark.createDataFrame([(1, 11), (1, 11), (3, 10), (4, 8), (4, 8)], ["c1", "c2"])
df2 = df.stat.freqItems(["c1", "c2"])
df2.select([sf.sort_array(c).alias(c) for c in df2.columns]).show()
+------------+------------+
|c1_freqItems|c2_freqItems|
+------------+------------+
|   [1, 3, 4]| [8, 10, 11]|
+------------+------------+

계층화된 샘플

from pyspark.sql import functions as sf

dataset = spark.range(0, 100, 1, 5).select((sf.col("id") % 3).alias("key"))
dataset.stat.sampleBy("key", fractions={0: 0.1, 1: 0.2}, seed=0).groupBy("key").count().orderBy("key").show()
+---+-----+
|key|count|
+---+-----+
|  0|    4|
|  1|    9|
+---+-----+