внешняя таблица snowflake из списка json

#python #json #amazon-web-services #snowflake-cloud-data-platform #external-tables

Вопрос:

у меня есть досье.json в моем ведре s3 содержит список json, например, когда я загружаю его и анализирую с помощью python json, я получаю список:

 [{'k': 'calendar#event'}, {'k': 'calendar#event'}]
 

загрузка его во внешнюю таблицу работает:

 create external table if not exists TEST_111
with location = @TESt111
auto_refresh = true
file_format = (type = json);
 

но вместо того, чтобы получить таблицу с 2 строками, я получаю одну строку со списком в ней,
есть идеи?

Комментарии:

1. При создании внешней таблицы данные хранятся в одном столбце ВАРИАНТА, см. Здесь . Кроме того, ознакомьтесь с дополнительными параметрами и примером, приведенными здесь для полуструктурированных данных.

2. Вы пробовали использовать STRIP_OUTER_ARRAY = TRUE в параметрах формата вашего файла?

Ответ №1:

Если значение указано в виде массива, то strip_outer_array его можно использовать:

 create external table if not exists TEST_111
with location = @TESt111
auto_refresh = true
file_format = (type = json, STRIP_OUTER_ARRAY=TRUE);
 

Кроме того, если ключи json известны заранее, они могут быть представлены в виде столбцов непосредственно в определении внешней таблицы:

 create external table if not exists TEST_111
(
    filename    TEXT  metadata$filename
   ,k           TEXT  AS (value:"k"::TEXT)
)
with location = @TESt111
auto_refresh = true
file_format = (type = json, STRIP_OUTER_ARRAY=TRUE);