hll_union 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 13.3 LTS 及更高版本

此函数利用 HyperLogLog 算法将两个草图合并为一个草图。

查询可以使用生成的缓冲区通过 hll_sketch_estimate 函数计算长整数形式的近似唯一计数。

实现使用 Apache Datasketches 库。 有关详细信息,请参阅 HLL

语法

hll_union ( expr1, expr2 [, allowDifferentLgConfigK ] )

参数

  • exprN:包含 hll_sketch_agg 生成的草图的 BINARY 表达式。
  • allowDifferentLgConfigK:可选的 BOOLEAN 表达式,控制是否允许合并两个具有不同 lgConfigK 值的草图。 默认值为 false。

返回

一个 BINARY 缓冲区,其中包含通过组合输入表达式计算出的 HyperLogLog 草图。

allowDifferentLgConfigK 参数为 true 时,结果草图将使用提供的两个 lgConfigK 值中较小的一个。

示例

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1),
    hll_sketch_agg(col2)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  6

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1,  4),
    hll_sketch_agg(col2, 21)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  error