Как преобразовать json объект в массив в prestodb / athena - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть JSON объект в этом формате data = {"1": {"col1":"a", "col2":"b"}, "2": {"col1":"c", "col2":"d"}....,"99":{"col1":"asd", "col2":"exm"}}. Я хотел бы получить все значения для col_1 и col_2, используя athena. Как мне добиться этого с помощью Афины?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Я смог решить ее, преобразовав ее в Map, а затем распаковав, например,

, выберите ключ, значение из таблицы, в которой необходимо удалить (приведение (json_parse (data) как Map (varchar, JSON)) как т (ключ, значение))

0 голосов
/ 22 апреля 2020

Игнорируйте, что это формат JSON (поскольку он недостаточно прост), и используйте функцию регулярного выражения:

SELECT regexp_extract_all(column_data, '"col1":"([a-z]+)",'); -- [a, c, ... asd]
...