Postgresql json_each эквивалент в Presto - PullRequest
0 голосов
/ 29 июня 2019

У меня есть данные, которые я использовал для извлечения из Postgresql с помощью json_each (x), я ищу эквивалент json_each в Presto после переноса базы данных, чтобы извлечь мои данные в несколько строк.Исходный формат таков: {"0": 100.0, "57000": 75.0, "47000": 80.0}

Ожидаемый вывод для разделения ключа и значений на 2 столбца из нескольких строк

Есть идеи?

1 Ответ

3 голосов
/ 29 июня 2019

Это может быть достигнуто путем объединения функций Presto JSON с UNNEST. Шаги:

  1. Разобрать необработанный JSON в тип JSON с помощью json_parse
  2. Приведение из JSON к карте с выражением JSON
  3. Развернуть карту в строки с использованием стандарта SQL UNNEST табличная функция

Вот запрос с данными вашего примера:

WITH t AS (SELECT '{"0":100.0,"57000":75.0,"47000":80.0}' AS raw_json)
SELECT key, value
FROM
    t,
    UNNEST(
        CAST(json_parse(raw_json) AS map(integer, double))
    ) x(key, value)

Для дальнейшего использования все функции описаны здесь: https://prestosql.io/docs/current/functions.html

...