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
from pyspark.databricks.sql import functions as dbsf
dbsf.approx_top_k(col, k=5, maxItemsTracked=10000)
parameter
parameter | Type | Description |
|---|---|---|
|
| Colonne à partir de laquelle trouver les éléments top k. |
|
| Nombre des meilleurs éléments à renvoyer. default, la valeur est 5. |
|
| 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
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()
root
|-- top_k: array (nullable = false)
| |-- element: struct (containsNull = false)
| | |-- item: long (nullable = true)
| | |-- count: long (nullable = false)