Как использовать json_tuple для разбора всех элементов в объекте JSON, где вы не знаете имя ключа? (Улей) - PullRequest
1 голос
/ 08 января 2020

Я анализирую данные из API, который возвращает данные о продуктах в формате JSON. У меня есть таблица Hive json_message_table, где у меня есть каждое сообщение JSON в строке таблицы. Я хочу заполнить таблицы Hive этой информацией, и мне нужно разбить структуру JSON.

Структура выглядит следующим образом.

  {product_name : ... , meta : { product_structure : { sub_product_1 : {...},sub_product_2 : { ... } ... }}

То, что я делал раньше в подобных случаях is

 SELECT b1.product_name as ProductName,
        b3.product_structure as ProductStructure
        FROM json_message_table a
        LATERAL VIEW json_tuple(a.messages,'product_name') b1 as product_name
        LATERAL VIEW json_tuple(a.messages,'meta') b2 as meta
        LATERAL VIEW json_tuple(b2.meta,'product_structure') b3 as product_structure;

Моя проблема в том, что имена ключей sub_product_1,sub_product_2 различны для каждого объекта JSON, они могут называться как угодно, поэтому я не могу указать, как они будут вызываться, и поэтому я не понимаю, как использовать LATERAL VIEW и json_tuple для их анализа.

Мне нужно разобрать каждое поле внутри product_structure JSON независимо от имени ключа, а затем продолжить анализ метаданных внутри их соответствующих JSON. Есть ли способ сделать это?

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