bitmap_or_agg:位图合并
速查结论
bitmap_or_agg(child) 是 Spark SQL 中用于返回一个位图,它是子表达式中所有位图的按位或(OR)结果的聚合函数。
语法
bitmap_or_agg(child)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| child | 位图(BINARY) | 需要合并的位图表达式。输入通常是从 bitmap_construct_agg() 创建的位图。 |
Examples
> SELECT substring(hex(bitmap_or_agg(col)), 0, 6) FROM VALUES (X '10'), (X '20'), (X '40') AS tab(col);
700000
> SELECT substring(hex(bitmap_or_agg(col)), 0, 6) FROM VALUES (X '10'), (X '10'), (X '10') AS tab(col);
100000
常见报错与避坑指南
输入位图应是同构的。 bitmap_or_agg 将来自不同行的位图做按位或运算,如果不同行的位图来自不同的构建逻辑(如不同的 bitmap_bit_position 映射),合并结果可能失去业务含义。建议确保参与合并的位图都使用相同的位位置定义。
重复的位图做 OR 运算不会改变结果。 如示例中三次 X '10' 合并后结果仍为 100000(即 X '10' 本身),因为 10 OR 10 OR 10 = 10。这不是错误,而是按位或运算的数学特性。
Since: 3.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
