EXPLODE_JSON_ARRAY_INT
説明
explode_json_array_intTable関数は、各要素が整数型のJSON配列を受け取り、配列内の各整数を複数行に展開します。各行には1つの整数が含まれます。LATERAL VIEWと組み合わせて使用されます。
explode_json_array_int_outerはexplode_json_array_intと似ていますが、NULL値の処理が異なります。
JSON文字列自体がNULLの場合、OUTERバージョンは1行を返し、値はNULLになります。通常バージョンはそのようなレコードを完全に無視します。
JSON配列が空の場合、OUTERバージョンは1行を返し、値はNULLになります。通常バージョンは結果を返しません。
構文
EXPLODE_JSON_ARRAY_INT(<json>)
EXPLODE_JSON_ARRAY_INT_OUTER(<json>)
戻り値
| Parameter | デスクリプション |
|---|---|
<json> | json type |
パラメータ
JSON配列を展開し、各要素に対して行を作成し、integer列を返します。
Examples
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");
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');
SELECT id, e1
FROM json_array_example
LATERAL VIEW EXPLODE_JSON_ARRAY_INT(json_array) tmp1 AS e1
WHERE id = 1;
+------+------+
| id | e1 |
+------+------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
+------+------+
SELECT id, e1
FROM json_array_example
LATERAL VIEW EXPLODE_JSON_ARRAY_INT(json_array) tmp1 AS e1
WHERE id = 5;
Empty set (0.01 sec)
SELECT id, e1
FROM json_array_example
LATERAL VIEW EXPLODE_JSON_ARRAY_INT_OUTER(json_array) tmp1 AS e1
WHERE id = 5;
+------+------+
| id | e1 |
+------+------+
| 5 | NULL |
+------+------+