Share via


Klasse DataFrameStatFunctions

Functionaliteit voor statistische functies met een DataFrame.

Ondersteunt Spark Connect

Syntaxis

DataFrame.stat

Methods

Methode Beschrijving
approxQuantile(col, probabilities, relativeError) Berekent de geschatte kwantielen van numerieke kolommen van een DataFrame.
corr(col1, col2, method) Berekent de correlatie van twee kolommen als een dubbele waarde. Momenteel ondersteunt alleen de Pearson-correlatiecoƫfficiƫnt.
cov(col1, col2) Berekent de covariantie van de steekproef voor de opgegeven kolommen als een dubbele waarde.
crosstab(col1, col2) Berekent een frequentietabel met twee kolommen.
freqItems(cols, support) Hiermee vindt u frequente items voor kolommen, mogelijk met fout-positieven.
sampleBy(col, fractions, seed) Retourneert een gestratificeerde steekproef zonder vervanging op basis van de breuk die op elk stratum is opgegeven.

Examples

Geschatte kwantielen

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]

Correlatie

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

Covariantie

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

Kruistabellen

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

Veelgebruikte items

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

Gestratificeerde steekproef

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