EXPLODE_JSON_ARRAY_DOUBLE

功能描述

explode_json_array_double
explode_json_array_double
 表函数,接受一个 JSON 数组,其实现逻辑是将 JSON 数组转换为数组类型然后再调用 
explode
explode
 函数处理。需配合 
LATERAL VIEW
LATERAL VIEW
 使用。

语法

EXPLODE_JSON_ARRAY_DOUBLE(<json>)

参数说明

<json>
<json>
 JSON 类型,其内容应该是数组

返回结果

  • 返回由 
    <json>
    <json>
     所有元素组成的单列多行数据,列类型为 
    Nullable<JSON>
    Nullable<JSON>
  • 如果 
    <json>
    <json>
     为 NULL 或者为空数组(元素个数为 0),返回 0 行数据。
  • 如果 JSON 数组的元素不是 DOUBLE 类型,会尝试将其转换为 DOUBLE 类型,无法转换为 DOUBLE 类型的被转换为 NULL。

使用示例

CREATE TABLE test_explode_json(id int, j json); INSERT INTO test_explode_json VALUES (1, parse_json('{"a": 1, "b": "hello", "c": [1,2,3]}')), (2, parse_json('[1, 2, "three", 4.5, null]')), (3, parse_json('null')), (4, null), (5, parse_json('[]')), (6, parse_json('{}')), (7, parse_json('[{"x":1},{"y":2}]')), (8, parse_json('{"nested": {"a": 1}, "arr": [1,2]}')); SELECT id, col FROM test_explode_json LATERAL VIEW explode_json_array_double(j) lv AS col ORDER BY id;

结果(只有 id=2 的行是 JSON 数组;

"three"
"three"
无法转为 DOUBLE 返回 NULL;id=7 的元素是对象,转换失败返回 NULL):

idcol
21
22
2NULL
24.5
2NULL
7NULL
7NULL
联系我们
预约咨询
微信咨询
电话咨询