Regexp_extract возвращает данные 2 раза (дубликаты) в Hive - PullRequest
0 голосов
/ 13 апреля 2020

Я хотел бы спросить о проблеме, связанной с regexp_extract в Hive. Итак, я хотел бы извлечь значение из json object

{"data":[{"key":"text","value":"12345"},{"key2":"text2","value":""}],"key3":time1,"key4":time2}

Я использую запрос regexp_extract следующим образом:

max(if(index=0, regexp_extract(column1, '"key":"text","value":"(.+?)"', 1), '')) as extract1,
max(if(index=1, regexp_extract(column1, '"key":"text","value":"(.+?)"', 1), '')) as extract2

, но я получил повторяющиеся данные для каждого, поэтому давайте скажем, он должен вернуть только 2 строки (строка 1, строка 2), но вместо этого он дал мне 4 строки (строка 1, строка 1, строка 2, строка 2) с полностью идентичными данными.

Однако я решил эту проблему, изменив regexp_extract на get_json_object следующим образом:

max(if(index = 0, get_json_object(column1, '$.data[0].value'), '')) as extract_1,
max(if(index = 1, get_json_object(column1, '$.data[0].value'), '')) as extract_2

, но все еще не смог найти причину. Кто-нибудь знает почему? Очень ценю вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...