explode_bitmap

description

表函数,需配合 Lateral View 使用。

展开一个bitmap类型。

语法:

  1. explode_bitmap(bitmap)

example

原表数据:

  1. mysql> select k1 from example1 order by k1;
  2. +------+
  3. | k1 |
  4. +------+
  5. | 1 |
  6. | 2 |
  7. | 3 |
  8. | 4 |
  9. | 5 |
  10. | 6 |
  11. +------+

Lateral View:

  1. mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_empty()) tmp1 as e1 order by k1, e1;
  2. Empty set
  3. mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1")) tmp1 as e1 order by k1, e1;
  4. +------+------+
  5. | k1 | e1 |
  6. +------+------+
  7. | 1 | 1 |
  8. | 2 | 1 |
  9. | 3 | 1 |
  10. | 4 | 1 |
  11. | 5 | 1 |
  12. | 6 | 1 |
  13. +------+------+
  14. mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1,2")) tmp1 as e1 order by k1, e1;
  15. +------+------+
  16. | k1 | e1 |
  17. +------+------+
  18. | 1 | 1 |
  19. | 1 | 2 |
  20. | 2 | 1 |
  21. | 2 | 2 |
  22. | 3 | 1 |
  23. | 3 | 2 |
  24. | 4 | 1 |
  25. | 4 | 2 |
  26. | 5 | 1 |
  27. | 5 | 2 |
  28. | 6 | 1 |
  29. | 6 | 2 |
  30. +------+------+
  31. mysql> select k1, e1 from example1 lateral view explode_bitmap(bitmap_from_string("1,1000")) tmp1 as e1 order by k1, e1;
  32. +------+------+
  33. | k1 | e1 |
  34. +------+------+
  35. | 1 | 1 |
  36. | 1 | 1000 |
  37. | 2 | 1 |
  38. | 2 | 1000 |
  39. | 3 | 1 |
  40. | 3 | 1000 |
  41. | 4 | 1 |
  42. | 4 | 1000 |
  43. | 5 | 1 |
  44. | 5 | 1000 |
  45. | 6 | 1 |
  46. | 6 | 1000 |
  47. +------+------+
  48. mysql> select k1, e1, e2 from example1
  49. lateral view explode_bitmap(bitmap_from_string("1,1000")) tmp1 as e1
  50. lateral view explode_split("a,b", ",") tmp2 as e2 order by k1, e1, e2;
  51. +------+------+------+
  52. | k1 | e1 | e2 |
  53. +------+------+------+
  54. | 1 | 1 | a |
  55. | 1 | 1 | b |
  56. | 1 | 1000 | a |
  57. | 1 | 1000 | b |
  58. | 2 | 1 | a |
  59. | 2 | 1 | b |
  60. | 2 | 1000 | a |
  61. | 2 | 1000 | b |
  62. | 3 | 1 | a |
  63. | 3 | 1 | b |
  64. | 3 | 1000 | a |
  65. | 3 | 1000 | b |
  66. | 4 | 1 | a |
  67. | 4 | 1 | b |
  68. | 4 | 1000 | a |
  69. | 4 | 1000 | b |
  70. | 5 | 1 | a |
  71. | 5 | 1 | b |
  72. | 5 | 1000 | a |
  73. | 5 | 1000 | b |
  74. | 6 | 1 | a |
  75. | 6 | 1 | b |
  76. | 6 | 1000 | a |
  77. | 6 | 1000 | b |
  78. +------+------+------+

keywords

  1. explode_bitmap