Aller au contenu principal

Classe DataFrameStatFunctions

Fonctionnalité pour les fonctions statistiques avec un DataFrame.

Prend en charge Spark Connect

Syntaxe

Python
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 forme de valeur double. Actuellement, seul le coefficient de corrélation de Pearson est pris en charge.

cov(col1, col2)

Calcule la covariance échantillon pour les colonnes données sous forme de valeur double.

crosstab(col1, col2)

Calcule une table de fréquences par paires des colonnes données.

freqItems(cols, support)

Trouve les éléments fréquents pour les colonnes, éventuellement avec des faux positifs.

sampleBy(col, fractions, seed)

Renvoie un échantillon stratifié sans remplacement basé sur la fraction donnée sur chaque strate.

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 forme de valeur double. Actuellement, seul le coefficient de corrélation de Pearson est pris en charge.

cov(col1, col2)

Calcule la covariance échantillon pour les colonnes données sous forme de valeur double.

crosstab(col1, col2)

Calcule une table de fréquences par paires des colonnes données.

freqItems(cols, support)

Trouve les éléments fréquents pour les colonnes, éventuellement avec des faux positifs.

sampleBy(col, fractions, seed)

Renvoie un échantillon stratifié sans remplacement basé sur la fraction donnée sur chaque strate.

Exemples

Quantiles approximatifs

Python
data = [(1,), (2,), (3,), (4,), (5,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
Output
[1.0, 3.0, 5.0]

Corrélation

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

Covariance

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

Tableau croisé

Python
df = spark.createDataFrame([(1, 11), (1, 11), (3, 10), (4, 8), (4, 8)], ["c1", "c2"])
df.stat.crosstab("c1", "c2").sort("c1_c2").show()
Output
+-----+---+---+---+
|c1_c2| 10| 11| 8|
+-----+---+---+---+
| 1| 0| 2| 0|
| 3| 1| 0| 0|
| 4| 0| 0| 2|
+-----+---+---+---+

Éléments fréquents

Python
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()
Output
+------------+------------+
|c1_freqItems|c2_freqItems|
+------------+------------+
| [1, 3, 4]| [8, 10, 11]|
+------------+------------+

Échantillon stratifié

Python
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()
Output
+---+-----+
|key|count|
+---+-----+
| 0| 4|
| 1| 9|
+---+-----+