DataFrameStatFunctions osztály

A DataFrame-et tartalmazó statisztikai függvények funkciói.

Támogatja a Spark Connectet

Szemantika

DataFrame.stat

Metódusok

Módszer Leírás
approxQuantile(col, probabilities, relativeError) Kiszámítja egy DataFrame numerikus oszlopainak hozzávetőleges kvantiliseit.
corr(col1, col2, method) Két oszlop korrelációját számítja ki kettős értékként. Jelenleg csak a Pearson korrelációs együtthatót támogatja.
cov(col1, col2) Az adott oszlopok kovarianciamintáját kettős értékként számítja ki.
crosstab(col1, col2) Kiszámítja az adott oszlopok párszintű gyakorisági táblázatát.
freqItems(cols, support) Megkeresi az oszlopok gyakori elemeit, esetleg hamis pozitív értékekkel.
sampleBy(col, fractions, seed) Egy rétegzett mintát ad vissza csere nélkül az egyes rétegeken megadott törtrész alapján.

Examples

Hozzávetőleges kvantilisek

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]

Korreláció

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

Kovariancia

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

Kereszttáblázás

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

Gyakori elemek

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

Rétegzett minta

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