| --- | |
| { | |
| "title": "EXPLODE_JSON_ARRAY_DOUBLE", | |
| "language": "en", | |
| "description": "The explodejsonarraydouble table function accepts a JSON array, where each element is of double-precision floating-point type," | |
| } | |
| --- | |
| ## Description | |
| The `explode_json_array_double` table function accepts a JSON array, where each element is of double-precision floating-point type, and expands each floating-point number in the array into multiple rows, with each row containing one floating-point number. It is used in conjunction with LATERAL VIEW. | |
| `explode_json_array_double_outer` is similar to `explode_json_array_double`, but the handling of NULL values is different. | |
| If the JSON string itself is NULL, the `OUTER` version will return one row, with the value as NULL. The normal version will completely ignore such records. | |
| If the JSON array is empty, the `OUTER` version will return one row, with the value as NULL. The normal version will return no results. | |
| ## Syntax | |
| ```sql | |
| EXPLODE_JSON_ARRAY_DOUBLE(<json>) | |
| EXPLODE_JSON_ARRAY_DOUBLE_OUTER(<json>) | |
| ``` | |
| ## Return Value | |
| | Parameter | Description | | |
| | -- | -- | | |
| | `<json>` | json type | | |
| ## Parameters | |
| Expands the JSON array, creating a row for each element, returning a double-precision floating-point column. | |
| ## Examples | |
| ```sql | |
| CREATE TABLE json_array_example ( | |
| id INT, | |
| json_array STRING | |
| )DUPLICATE KEY(id) | |
| DISTRIBUTED BY HASH(id) BUCKETS AUTO | |
| PROPERTIES ( | |
| "replication_allocation" = "tag.location.default: 1"); | |
| ``` | |
| ```sql | |
| INSERT INTO json_array_example (id, json_array) VALUES | |
| (1, '[1, 2, 3, 4, 5]'), | |
| (2, '[1.1, 2.2, 3.3, 4.4]'), | |
| (3, '["apple", "banana", "cherry"]'), | |
| (4, '[{"a": 1}, {"b": 2}, {"c": 3}]'), | |
| (5, '[]'), | |
| (6, 'NULL'); | |
| ``` | |
| ```sql | |
| SELECT id, e1 | |
| FROM json_array_example | |
| LATERAL VIEW EXPLODE_JSON_ARRAY_DOUBLE(json_array) tmp1 AS e1 | |
| WHERE id = 2; | |
| ``` | |
| ```text | |
| +------+------+ | |
| | id | e1 | | |
| +------+------+ | |
| | 2 | 1.1 | | |
| | 2 | 2.2 | | |
| | 2 | 3.3 | | |
| | 2 | 4.4 | | |
| +------+------+ | |
| ``` | |
| ```sql | |
| SELECT id, e1 | |
| FROM json_array_example | |
| LATERAL VIEW EXPLODE_JSON_ARRAY_DOUBLE(json_array) tmp1 AS e1 | |
| WHERE id = 6; | |
| Empty set (0.01 sec) | |
| ``` | |
| ```sql | |
| SELECT id, e1 | |
| FROM json_array_example | |
| LATERAL VIEW EXPLODE_JSON_ARRAY_DOUBLE_OUTER(json_array) tmp1 AS e1 | |
| WHERE id = 6; | |
| ``` | |
| ```text | |
| +------+------+ | |
| | id | e1 | | |
| +------+------+ | |
| | 6 | NULL | | |
| +------+------+ | |
| ``` |