Как прочитать и разобрать массив кортежей в таблице снежного покрова? - PullRequest
0 голосов
/ 31 марта 2020

Я работаю с исходным полем в виде массива кортежей

[(a, 145), (b, 12), (c, 63), (d, 1), (e, 54), (f, 99), ...]

Я не могу загрузить это поле в тип варианта в снежинку. Когда я пытаюсь загрузить это поле, я получаю следующую ошибку - Исключение: net .snowflake.client.jdb c .SnowflakeSQLException: Ошибка синтаксического анализа JSON.

В качестве решения я загрузил это поле как VARCHAR в Snowflake, но теперь у меня возникают проблемы при попытке проанализировать его как массив и сгладить его, используя функцию бокового сглаживания.

Моя цель - сгладить этот массив и разбить каждый кортеж на отдельный ряд. Затем я хотел бы разбить кортеж на отдельные столбцы. У кого-нибудь есть предложения, как заставить это работать в снежинке?

1 Ответ

1 голос
/ 31 марта 2020
select 
    split_part(regexp_replace(value, '[\\(\\)]'), ',', 1) as left, 
    split_part(regexp_replace(value, '[\\(\\)]'), ',', 2) as right
from table(split_to_table(
    regexp_replace('[(a,145), (b,12), (c,63), (d,1), (e,54), (f,99)]', '[\\[\\]]',''),
    ' ') 
   );
...