DataFrameStatFunctions sınıfı

DataFrame ile istatistiksel işlevler için işlevsellik.

Spark Connect'i destekler

Sözdizimi

DataFrame.stat

Methods

Yöntem Açıklama
approxQuantile(col, probabilities, relativeError) Bir DataFrame'in sayısal sütunlarının yaklaşık niceliklerini hesaplar.
corr(col1, col2, method) İki sütunun bağıntısını çift değer olarak hesaplar. Şu anda yalnızca Pearson Bağıntı Katsayısını destekler.
cov(col1, col2) Verilen sütunlar için örnek kovaryans değerini çift değer olarak hesaplar.
crosstab(col1, col2) Verilen sütunların çift yönlü sıklık tablosunu hesaplar.
freqItems(cols, support) Büyük olasılıkla hatalı pozitif değerler içeren sütunlar için sık kullanılan öğeleri bulur.
sampleBy(col, fractions, seed) Her katmanda verilen kesire göre değiştirme yapmadan katmanlı bir örnek döndürür.

Örnekler

Yaklaşık niceller

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]

Bağıntı

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

Kovaryans

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

Çapraz sekme

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|
+-----+---+---+---+

Sık kullanılan öğeler

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]|
+------------+------------+

Katmanlı örnek

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|
+---+-----+