Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Funktionalität für statistische Funktionen mit einem DataFrame.
Unterstützt Spark Connect
Syntax
DataFrame.stat
Methodik
| Methode | Beschreibung |
|---|---|
approxQuantile(col, probabilities, relativeError) |
Berechnet die ungefähren Quantiles numerischer Spalten eines DataFrames. |
corr(col1, col2, method) |
Berechnet die Korrelation von zwei Spalten als doppelten Wert. Unterstützt derzeit nur den Pearson-Korrelationskoeffizient. |
cov(col1, col2) |
Berechnet die Stichprobenkovarianz für die angegebenen Spalten als doppelten Wert. |
crosstab(col1, col2) |
Berechnet eine paarweise Häufigkeitstabelle der angegebenen Spalten. |
freqItems(cols, support) |
Sucht häufig verwendete Elemente für Spalten, möglicherweise mit falsch positiven Ergebnissen. |
sampleBy(col, fractions, seed) |
Gibt eine gestazierte Probe ohne Ersatz basierend auf dem Bruch zurück, der auf den einzelnen Schichten angegeben ist. |
Beispiele
Ungefähre Quantiles
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]
Korrelation
df = spark.createDataFrame([(1, 12), (10, 1), (19, 8)], ["c1", "c2"])
df.stat.corr("c1", "c2")
-0.3592106040535498
Kovarianz
df = spark.createDataFrame([(1, 12), (10, 1), (19, 8)], ["c1", "c2"])
df.stat.cov("c1", "c2")
-18.0
Kreuzregisterkarten
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|
+-----+---+---+---+
Häufige Elemente
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]|
+------------+------------+
Gezeichnetes Beispiel
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|
+---+-----+