Partager via


DataFrameStatFunctions, classe

Fonctionnalités pour les fonctions statistiques avec un DataFrame.

Prend en charge Spark Connect

Syntaxe

DataFrame.stat

Méthodes

Méthode Description
approxQuantile(col, probabilities, relativeError) Calcule les quantiles approximatifs des colonnes numériques d’un DataFrame.
corr(col1, col2, method) Calcule la corrélation de deux colonnes sous la forme d’une valeur double. Actuellement, seul le coefficient de corrélation Pearson est pris en charge.
cov(col1, col2) Calcule l’exemple de covariance pour les colonnes données sous la forme d’une valeur double.
crosstab(col1, col2) Calcule une table de fréquences jumelée des colonnes données.
freqItems(cols, support) Recherche des éléments fréquents pour les colonnes, éventuellement avec des faux positifs.
sampleBy(col, fractions, seed) Retourne un échantillon stratifié sans remplacement en fonction de la fraction donnée sur chaque strate.

Exemples

Quantiles approximatifs

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]

Corrélation

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

Covariance

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

Tabulation croisée

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

Éléments fréquents

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

Exemple stratifié

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