Разбор JSON для получения последней захваченной даты - PullRequest
0 голосов
/ 02 марта 2019

Я использую Presto, и в моей БД есть столбец с треком состояния, вход которого имеет следующий формат

Содержимое анализируемого столбца

{"{\"time\":\"2018-03-31T17:19:03.325+05:30\",\"status\":\"In Progress\",\"requested_by\":\"\",\"request_reason\":\"PTA completed in AMS\",\"old_status\":\"In Progress\",\"current_status\":\"Active\"}","{\"requested_by\":\"New\",\"request_reason\":\"\",\"time\":\"2018-03-31T20:48:28.034+05:30\",\"crs_id\":\"HLD024\",\"user_id\":282,\"old_status\":\"Active\",\"current_status\":\"Live\"}"}

Я хочу зафиксировать дату, когда статус изменится с активного на живой.При написании SQL-запроса на R я могу сделать это с помощью -

select oyo_id,min(date) 
from (select tab.* from( select h.my_id,
(unnest(h.status_track::text[])::json->>'old_status')::text as old_status,
(unnest(h.status_track::text[])::json->>'current_status')::text as 
current_status,
date((unnest(h.status_track::text[])::json->>'time' ))
from hotels h 
join taggings tg on tg.taggable_id = h.id
left join crs_enums  e1 on e1.enum_key = h.status and e1.table_name 
='hotels' and e1.column_name = 'status'
where tg.tag_name = 'my'
and h.status in (0,1,2,3,4)
and h.oyo_id not like '%my%') tab 
where (old_status = 'Active' or current_status = 'Active') ) as a
group by 1

Как выполнить синтаксический анализ в Hive, чтобы зафиксировать дату после изменения статуса с активного на живой.

...