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

keyword

  1. explode_bitmap