#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);