Hive SQL中get_json_object()无法提取嵌套转义JSON值怎么办?
Hive嵌套JSON字段提取解决方案
问题本质:你的字段A里的
c_e_i存储的是转义后的JSON字符串(而非原生JSON对象),所以单层get_json_object无法直接穿透提取内层的e_c_f值。正确SQL写法:需要嵌套调用
get_json_object,先解析外层JSON拿到c_e_i的字符串内容,再对该内容解析内层JSON:
SELECT get_json_object(get_json_object(T.A, '$.c_e_i'), '$.e_c_f') AS e_c_f_value FROM T;
- 可选优化方案(Hive版本支持时):用
json_tuple替代get_json_object,写法更简洁:
SELECT json_tuple(json_tuple(T.A, 'c_e_i').c_e_i, 'e_c_f').e_c_f AS e_c_f_value FROM T;
内容的提问来源于stack exchange,提问作者edmond
相关产品推荐
相关产品推荐

