如何使用配置单元查询查找配置单元 json 数组字段的长度

How to find the length of hive json array field using hive query

"keys": [ "2324", "abc"] 

这是配置单元的键之一 JSON。我想找到 "keys" 字段的长度。我正在使用 get_json_object() 方法阅读 JSON。

这是我正在做的但出现错误的方法:

select count(*) from table_name where json_array_length(get_json_object(node,'$.keys'))=2;

get_json_object returns 字符串。去掉方括号和split得到数组,用size得到数组大小:

size(split(regexp_replace(get_json_object(node,'$.keys'),'\[|\]',''),'", '))

由于您正在查看 json 数组,您可以简单地执行 split 然后应用 size 以获得所需的结果。

select size(split(get_json_object(data,'$.keys'),',')) from <table name>;