Aller au contenu principal

hll_union_agg

Fonction d'agrégation : renvoie la représentation binaire actualisable du Datasketches HllSketch, générée en fusionnant les instances Datasketches HllSketch créées précédemment via une instance Datasketches Union. Génère une exception si les esquisses ont des valeurs lgConfigK différentes et que allowDifferentLgConfigK n'est pas défini ou est défini sur false.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.hll_union_agg(col, allowDifferentLgConfigK=None)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

La colonne contenant les croquis HLL à Merge.

allowDifferentLgConfigK

pyspark.sql.Column ou booléen, facultatif

Autoriser la Merge d'esquisses avec différentes valeurs lgConfigK (default : false).

parameter

Type

Description

col

pyspark.sql.Column ou str

La colonne contenant les croquis HLL à Merge.

allowDifferentLgConfigK

pyspark.sql.Column ou booléen, facultatif

Autoriser la Merge d'esquisses avec différentes valeurs lgConfigK (default : false).

Renvoie

pyspark.sql.Column: La représentation binaire du HllSketch Merge.

Exemples

Exemple 1 : Merge de HLL sketches avec les paramètres par default

Python
from pyspark.sql import functions as sf
df1 = spark.createDataFrame([1,2,2,3], "INT")
df1 = df1.agg(sf.hll_sketch_agg("value").alias("sketch"))
df2 = spark.createDataFrame([4,5,5,6], "INT")
df2 = df2.agg(sf.hll_sketch_agg("value").alias("sketch"))
df3 = df1.union(df2)
df3.agg(sf.hll_sketch_estimate(sf.hll_union_agg("sketch"))).show()
Output
+-------------------------------------------------+
|hll_sketch_estimate(hll_union_agg(sketch, false))|
+-------------------------------------------------+
| 6|
+-------------------------------------------------+

Exemple 2 : Merge des esquisses HLL avec allowDifferentLgConfigK explicite

Python
from pyspark.sql import functions as sf
df1 = spark.createDataFrame([1,2,2,3], "INT")
df1 = df1.agg(sf.hll_sketch_agg("value").alias("sketch"))
df2 = spark.createDataFrame([4,5,5,6], "INT")
df2 = df2.agg(sf.hll_sketch_agg("value").alias("sketch"))
df3 = df1.union(df2)
df3.agg(sf.hll_sketch_estimate(sf.hll_union_agg("sketch", False))).show()
Output
+-------------------------------------------------+
|hll_sketch_estimate(hll_union_agg(sketch, false))|
+-------------------------------------------------+
| 6|
+-------------------------------------------------+