Как найти длину поля массива hive json с помощью запроса hive

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

Это один из ключей Hive JSON. Я хочу найти длину поля "keys". я читаю JSON, используя метод get_json_object().

Я так делаю, но получаю ошибку:

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

person Aditya    schedule 26.06.2020    source источник


Ответы (2)


поскольку вы просматриваете массив json, вы можете просто выполнить split, а затем применить size, чтобы получить желаемый результат.

select size(split(get_json_object(data,'$.keys'),',')) from <table name>;
person Rishu Shrivastava    schedule 27.06.2020

get_json_object возвращает строку. Удалите квадратные скобки и split, чтобы получить массив, используйте size, чтобы получить размер массива:

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