Compartir a través de

hll_union_agg

聚合函数:返回 Datasketches HllSketch 的可更新二进制表示形式,该表示形式是通过 Datasketches Union 实例合并以前创建的 Datasketches HllSketch 实例生成的。 如果草图具有不同的 lgConfigK 值并且 allowDifferentLgConfigK 未设置或设置为 false,则引发异常。

Syntax

from pyspark.sql import functions as sf

sf.hll_union_agg(col, allowDifferentLgConfigK=None)

参数

参数 类型 Description
col pyspark.sql.Column 或 str 包含要合并的 HLL 草图的列。
allowDifferentLgConfigK pyspark.sql.Column 或 bool,可选 允许合并具有不同 lgConfigK 值的草图(默认值为 false)。

退货

pyspark.sql.Column:合并的 HllSketch 的二进制表示形式。

例子

示例 1:使用默认设置合并 HLL 草图

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()
+-------------------------------------------------+
|hll_sketch_estimate(hll_union_agg(sketch, false))|
+-------------------------------------------------+
|                                                6|
+-------------------------------------------------+

示例 2:将 HLL 草图与显式 allowDifferentLgConfigK 合并

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()
+-------------------------------------------------+
|hll_sketch_estimate(hll_union_agg(sketch, false))|
+-------------------------------------------------+
|                                                6|
+-------------------------------------------------+