Redshift Spectrum: запрос анонимной структуры массива JSON - PullRequest
1 голос
/ 02 мая 2019

У меня есть массив структур JSON в S3, который успешно отсканирован и каталогизирован Glue.

[{"key":"value"}, {"key":"value"}]

Я использую пользовательский классификатор:

$[*] 

При попыткеоднако для запроса из Spectrum он возвращает:

Ион / JSON-структура верхнего уровня должна быть анонимным массивом, если и только если установлено свойство serde 'strip.outer.array'.Произошло несоответствие в файле ...

Я установил это свойство serde вручную в таблице каталога Glue, но ничего не изменилось.

Нет ли возможности запросить анонимный массив через Spectrum?

1 Ответ

1 голос
/ 02 мая 2019

Называя массив в файле JSON следующим образом:

"values":[{"key":"value"},...}

И обновление классификатора:

$.values[*]

Исправляет проблему ... Интересно узнать, есть ли способ запроса анонимных массивов. Кажется довольно распространенным для хранения таких данных.

Обновление: В конце концов, это решение не сработало, так как Spectrum никогда бы не дал никаких результатов. Не было ошибок, просто нет результатов, и на данный момент все еще нет решения, кроме использования отдельных записей в строке:

{"key":"value"}
{"key":"value"}
etc.

Кажется, это специфическая проблема Спектрума, поскольку Афина все еще будет работать.

Интересно узнать, смог ли кто-нибудь еще заставить его работать ...

...