explode_bitmap
description
表函数,需配合 Lateral View 使用。
展开一个bitmap类型。
语法:
explode_bitmap(bitmap)
example
原表数据:
mysql> select k1 from example1 order by k1;+------+| k1 |+------+| 1 || 2 || 3 || 4 || 5 || 6 |+------+
Lateral View:
mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_empty()) tmp1 as e1 order by k1, e1;+------+------+| k1 | e1 |+------+------+| 1 | NULL || 2 | NULL || 3 | NULL || 4 | NULL || 5 | NULL || 6 | NULL |+------+------+mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1")) tmp1 as e1 order by k1, e1;+------+------+| k1 | e1 |+------+------+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 1 || 5 | 1 || 6 | 1 |+------+------+mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1,2")) tmp1 as e1 order by k1, e1;+------+------+| k1 | e1 |+------+------+| 1 | 1 || 1 | 2 || 2 | 1 || 2 | 2 || 3 | 1 || 3 | 2 || 4 | 1 || 4 | 2 || 5 | 1 || 5 | 2 || 6 | 1 || 6 | 2 |+------+------+mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1,1000")) tmp1 as e1 order by k1, e1;+------+------+| k1 | e1 |+------+------+| 1 | 1 || 1 | 1000 || 2 | 1 || 2 | 1000 || 3 | 1 || 3 | 1000 || 4 | 1 || 4 | 1000 || 5 | 1 || 5 | 1000 || 6 | 1 || 6 | 1000 |+------+------+mysql> select k1, e1, e2 from example1lateral view explode_bitmap(bitmap_from_string("1,1000")) tmp1 as e1lateral view explode_split("a,b", ",") tmp2 as e2 order by k1, e1, e2;+------+------+------+| k1 | e1 | e2 |+------+------+------+| 1 | 1 | a || 1 | 1 | b || 1 | 1000 | a || 1 | 1000 | b || 2 | 1 | a || 2 | 1 | b || 2 | 1000 | a || 2 | 1000 | b || 3 | 1 | a || 3 | 1 | b || 3 | 1000 | a || 3 | 1000 | b || 4 | 1 | a || 4 | 1 | b || 4 | 1000 | a || 4 | 1000 | b || 5 | 1 | a || 5 | 1 | b || 5 | 1000 | a || 5 | 1000 | b || 6 | 1 | a || 6 | 1 | b || 6 | 1000 | a || 6 | 1000 | b |+------+------+------+
keyword
explode_bitmap