Kelas DataFrameStatFunctions

Fungsionalitas untuk fungsi statistik dengan DataFrame.

Mendukung Spark Connect

Sintaksis

DataFrame.stat

Metode

Metode Deskripsi
approxQuantile(col, probabilities, relativeError) Menghitung perkiraan kuantil kolom numerik DataFrame.
corr(col1, col2, method) Menghitung korelasi dua kolom sebagai nilai ganda. Saat ini hanya mendukung Koefisien Korelasi Pearson.
cov(col1, col2) Menghitung kovarians sampel untuk kolom yang diberikan sebagai nilai ganda.
crosstab(col1, col2) Menghitung tabel frekuensi sepasang yang bijaksana dari kolom yang diberikan.
freqItems(cols, support) Menemukan item yang sering untuk kolom, mungkin dengan positif palsu.
sampleBy(col, fractions, seed) Mengembalikan sampel yang di stratifikasi tanpa penggantian berdasarkan pecahan yang diberikan pada setiap stratum.

Examples

Perkiraan kuantil

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]

Korelasi

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

Kovarians

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

Tabulasi silang

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

Item yang sering

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

Sampel yang di stratifikasi

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