Aller au contenu principal

approx_top_k

Renvoie les k valeurs d'élément les plus fréquentes dans une colonne de chaîne de caractères, booléenne, de date, de timestamp ou numérique col, ainsi que leurs nombres approximatifs. L'erreur dans chaque nombre peut aller jusqu'à 2.0 * numRows / maxItemsTracked, où numRows est le nombre total de lignes. k (default : 5) et maxItemsTracked (default : 10000) sont tous deux des paramètres entiers. Des valeurs plus élevées de maxItemsTracked offrent une meilleure précision au détriment d'une utilisation accrue de la mémoire. Les colonnes qui contiennent moins de maxItemsTracked éléments distincts fourniront des comptages d'éléments exacts. Les valeurs NULL sont incluses comme leur propre valeur dans les résultats.

Les résultats sont renvoyés sous forme de tableau de structures contenant des valeurs item (avec leur type d'entrée d'origine) et leur occurrence count (de type long), triés par nombre décroissant.

Syntaxe

Python
from pyspark.databricks.sql import functions as dbsf

dbsf.approx_top_k(col, k=5, maxItemsTracked=10000)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou nom de colonne

Colonne à partir de laquelle trouver les éléments top k.

k

pyspark.sql.Column ou int, facultatif

Nombre des meilleurs éléments à renvoyer. default, la valeur est 5.

maxItemsTracked

pyspark.sql.Column ou int, facultatif

Nombre maximal d'éléments distincts à suivre. Default est 10 000. Des valeurs plus élevées offrent une meilleure précision au détriment d'une utilisation accrue de la mémoire.

parameter

Type

Description

col

pyspark.sql.Column ou nom de colonne

Colonne à partir de laquelle trouver les éléments top k.

k

pyspark.sql.Column ou int, facultatif

Nombre des meilleurs éléments à renvoyer. default, la valeur est 5.

maxItemsTracked

pyspark.sql.Column ou int, facultatif

Nombre maximal d'éléments distincts à suivre. Default est 10 000. Des valeurs plus élevées offrent une meilleure précision au détriment d'une utilisation accrue de la mémoire.

Exemples

Python
from pyspark.sql.functions import col
from pyspark.databricks.sql.functions import approx_top_k
item = (col("id") % 3).alias("item")
df = spark.range(0, 1000, 1, 1).select(item)
df.select(
approx_top_k("item", 5).alias("top_k")
).printSchema()
Output
root
|-- top_k: array (nullable = false)
| |-- element: struct (containsNull = false)
| | |-- item: long (nullable = true)
| | |-- count: long (nullable = false)