SQL 方言通

首页 / JSON

JSON 函数对照

JSON 函数在 MaxCompute、Hologres、StarRocks、Doris、Hive、Spark SQL、Flink SQL 中的写法对照,共 2 个函数。其中 2 个函数在部分引擎中需要改写或没有对应函数。

目录:from_json · get_json_object

FROM_JSON 按 schema 解析 JSON

FROM_JSON 按指定的 schema 把 JSON 字符串解析成 STRUCT、MAP 或 ARRAY。只有 MaxCompute 和 Spark 同名可用,写法基本一致;StarRocks、Doris 和 Hologres 先转成 JSON 类型再取字段,Hive 和 Flink 只能按路径取值。

引擎支持写法
MaxCompute支持from_json(jsonStr, schema)
Hologres需改写json_str::jsonb ->> 'key'
StarRocks需改写parse_json(str)
Doris需改写JSON_PARSE(json_str)
Hive需改写json_tuple(jsonStr, k1, k2, ...)
Spark SQL支持from_json(jsonStr, schema[, options])
Flink SQL需改写JSON_VALUE(json, path) / JSON_QUERY(json, path)

GET_JSON_OBJECT 提取 JSON 字段

GET_JSON_OBJECT 按 JSON 路径从字符串中取值。各引擎的函数名、返回类型和路径规则差别较大,是迁移时最容易出错的函数之一。

引擎支持写法
MaxCompute支持GET_JSON_OBJECT(json, json_path)
Hologres支持GET_JSON_OBJECT(json, json_path)
StarRocks支持get_json_object(json_str, json_path)
Doris需改写GET_JSON_STRING(json_str, json_path)
Hive支持get_json_object(json_string, path)
Spark SQL支持get_json_object(json_txt, path)
Flink SQL需改写JSON_VALUE(json, path)

其他分类

最近核对: