Как сделать Hive JOIN для двух таблиц, основанных на поле внутри JSON? - PullRequest
1 голос
/ 20 сентября 2019

Итак, у меня есть две таблицы, созданные следующим образом:

create external table test1 (json string) stored as textfile location '/user/data/test1';
create external table test2 (json string) stored as textfile location '/user/data/test2';

Обе таблицы имеют один столбец в виде строки, которая внутренне содержит объект JSON.

Вот как я это делаютипичный выбор поля с именем name из таблиц:

select get_json_object(json, '$.name') from test1 limit 1;

..., который использует get_json_object UDF куста для анализа строки JSON.

Теперь янеобходимо выполнить test1 LEFT OUTER JOIN test2 на основе поля name в объектах JSON.Как мне этого добиться?

1 Ответ

1 голос
/ 20 сентября 2019
select t1.*, t2.* --select columns needed
from
    (select t1.*, get_json_object(json, '$.name') as name from test1 t1) t1 --add more filters
    left join 
    (select t2.*, get_json_object(json, '$.name') as name from test2 t2) t2 --add more filters
    on t1.name=t2.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...