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