文章目录
原文:Apache Spark SQL --- Json Functions
本分类按照 Spark SQL 官方目录函数顺序整理,共 7 个函数。
1、from_json
语法
sql
from_json(jsonStr, schema[, options])
说明
按照指定 Schema 解析 JSON 字符串,并返回对应的 STRUCT 值。
示例
sql
> SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');
{"a":1,"b":0.8}
引入版本: 2.2.0
2、get_json_object
语法
sql
get_json_object(json_txt, path)
说明
按指定 JSON 路径提取对象或值。
示例
sql
> SELECT get_json_object('{"a":"b"}', '$.a');
b
引入版本: 1.5.0
3、json_array_length
语法
sql
json_array_length(jsonArray)
说明
返回最外层 JSON 数组中元素的数量。
示例
sql
> SELECT json_array_length('[1,2,3,4]');
4
引入版本: 3.1.0
4、json_object_keys
语法
sql
json_object_keys(json_object)
说明
提取最外层 JSON 对象全部字段名并返回数组。
示例
sql
> SELECT json_object_keys('{"key": "value"}');
["key"]
引入版本: 3.1.0
5、json_tuple
语法
sql
json_tuple(jsonStr, p1, p2, ..., pn)
说明
从 JSON 对象中按多个字段名提取值,各输出列均为字符串类型。
示例
sql
> SELECT json_tuple('{"a":1, "b":2}', 'a', 'b');
1 2
引入版本: 1.6.0
6、schema_of_json
语法
sql
schema_of_json(json[, options])
说明
推断 JSON 字符串的 Schema,并以 DDL 格式返回。
示例
sql
> SELECT schema_of_json('[{"col":0}]');
ARRAY<STRUCT<col: BIGINT>>
引入版本: 2.4.0
7、to_json
语法
sql
to_json(expr[, options])
说明
将 STRUCT 等复杂类型值转换为 JSON 字符串。
示例
sql
> SELECT to_json(named_struct('a', 1, 'b', 2));
{"a":1,"b":2}
引入版本: 2.2.0