EXPLODE_JSON_ARRAY_INT
更新时间:2025-10-16
描述
explode_json_array_int 表函数,接受一个 JSON 数组,其中每个元素是整数类型,将该 JSON 数组中的每个整数展开为多行,每行包含一个整数。配合 LATERAL VIEW 使用。
explode_json_array_int_outer 和 explode_json_array_int 类似,对于空值或 NULL 的处理不同。
如果 JSON 字符串本身为 NULL,OUTER 版本会返回一行,且该行中的值为 NULL。普通版本会完全忽略这类记录。
如果 JSON 数组为空,OUTER 版本会返回一行,且该行的值为 NULL。普通版本则不会返回任何结果。
语法
SQL
1EXPLODE_JSON_ARRAY_INT(<json>)
2EXPLODE_JSON_ARRAY_INT_OUTER(<json>)
参数
| 参数 | 说明 |
|---|---|
<json> |
json 类型 |
返回值
展开 JSON 数组,每个元素生成一行,返回整数列。
举例
SQL
1CREATE TABLE json_array_example (
2 id INT,
3 json_array STRING
4)DUPLICATE KEY(id)
5DISTRIBUTED BY HASH(id) BUCKETS AUTO
6PROPERTIES (
7"replication_allocation" = "tag.location.default: 1");
SQL
1INSERT INTO json_array_example (id, json_array) VALUES
2(1, '[1, 2, 3, 4, 5]'),
3(2, '[1.1, 2.2, 3.3, 4.4]'),
4(3, '["apple", "banana", "cherry"]'),
5(4, '[{"a": 1}, {"b": 2}, {"c": 3}]'),
6(5, '[]'),
7(6, 'NULL');
SQL
1SELECT id, e1
2FROM json_array_example
3LATERAL VIEW EXPLODE_JSON_ARRAY_INT(json_array) tmp1 AS e1
4WHERE id = 1;
Text
1+------+------+
2| id | e1 |
3+------+------+
4| 1 | 1 |
5| 1 | 2 |
6| 1 | 3 |
7| 1 | 4 |
8| 1 | 5 |
9+------+------+
SQL
1SELECT id, e1
2FROM json_array_example
3LATERAL VIEW EXPLODE_JSON_ARRAY_INT(json_array) tmp1 AS e1
4WHERE id = 5;
5Empty set (0.01 sec)
SQL
1SELECT id, e1
2FROM json_array_example
3LATERAL VIEW EXPLODE_JSON_ARRAY_INT_OUTER(json_array) tmp1 AS e1
4WHERE id = 5;
Text
1+------+------+
2| id | e1 |
3+------+------+
4| 5 | NULL |
5+------+------+
