Pular para o conteúdo principal

Classe DataFrameStatFunctions

Funcionalidade para funções estatísticas com um DataFrame.

Compatível com Spark Connect

Sintaxe​

Python
DataFrame.stat

Métodos​

Método

Descrição

approxQuantile(col, probabilities, relativeError)

Calcula os quantis aproximados das colunas numéricas de um DataFrame.

corr(col1, col2, method)

Calcula a correlação entre duas colunas como um valor do tipo double. Atualmente, suporta apenas o Coeficiente de Correlação de Pearson.

cov(col1, col2)

Calcula a covariância da amostra para as colunas fornecidas como um valor do tipo double.

crosstab(col1, col2)

Calcule uma tabela de frequência par a par das colunas fornecidas.

freqItems(cols, support)

Encontra itens frequentes em colunas, possivelmente com falsos positivos.

sampleBy(col, fractions, seed)

Retorna uma amostra estratificada sem reposição com base na fração fornecida em cada estrato.

Método

Descrição

approxQuantile(col, probabilities, relativeError)

Calcula os quantis aproximados das colunas numéricas de um DataFrame.

corr(col1, col2, method)

Calcula a correlação entre duas colunas como um valor do tipo double. Atualmente, suporta apenas o Coeficiente de Correlação de Pearson.

cov(col1, col2)

Calcula a covariância da amostra para as colunas fornecidas como um valor do tipo double.

crosstab(col1, col2)

Calcule uma tabela de frequência par a par das colunas fornecidas.

freqItems(cols, support)

Encontra itens frequentes em colunas, possivelmente com falsos positivos.

sampleBy(col, fractions, seed)

Retorna uma amostra estratificada sem reposição com base na fração fornecida em cada estrato.

Exemplos​

quantis aproximados​

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]

Correlação​

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

Covariância​

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

tabulação cruzada​

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

Itens frequentes​

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

Amostra estratificada​

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