hive解析json字符串
hive
使用get_json_object()函数
,
它接受两个参数:第一个参数是一个包含JSON字符串的列,第二个参数是一个JSON路径表达式,用于指定要提取的值的位置。这个函数返回一个字符串或NULL,具体取决于提取的值是否存在。
get_json_object(obj,'$.name')
例如,如果我们有一个名为 obj 的列,它包含以下JSON字符串:{“name”:“John”, “age”:30},我们可以使用以下语句从中提取名字:
SELECT get_json_object(json_column, '$.name') as name FROM my_table;
这将返回一个名为“name”的列,其中包含值“John”。
presto
在presto
和hive
中解析json字符串使用的函数不同
json_array_get()
:可以提取json数组中的指定位置,默认第一位的索引是0
`json_array_get(obj,0)`:可以提取json数组中的指定位置,默认第一位的索引是0
json_extract_scalar()
:从 JSON 对象或 JSON 数组中提取一组标量值(字符串、整数或布尔值)。类似于 json_extract 函数。
json_extract_scalar(obj,'$.name')