«Ошибка разбора типа столбца» Redshift Spectrum - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть сценарий использования спектра, использующий файлы большого количества json-файлов из s3.Я начал с сканирования данных с помощью сканера Glue для создания каталога данных.Затем с этим каталогом я создал внешнюю схему для ссылки на базу данных Glue, чтобы получить доступ к каталогу.Теперь я могу делать операторы select в строках корневого уровня, и это работает Пример:

select t.id from glue_db.test t

Проблема в том, что когда я делаю оператор select для объектов struct, я получаю эту ошибку "Ошибка синтаксического анализа типастолбца "t.actor.name" ".Вот пример выбора (id - это строка в структуре актера):

select t.actor.name from glue_db.test t

Что мне не хватает?Я также пытался преобразовать JSON в паркет, и сталкиваюсь с теми же проблемами, пытаясь запросить вложенные данные.

Вот таблица склеивания def:

enter image description here

Вот структура актера:

enter image description here

1 Ответ

0 голосов
/ 27 сентября 2018

Атрибуты, которые содержат вложенные значения, должны быть указаны в предложении FROM, чтобы Redshift знал, как получить к ним доступ.Также необходимо подтвердить, что сгенерированный каталог Glue правильно указывает таблицы.

select a.id 
from glue_db.test t, t.actor a

Пожалуйста, обратитесь к этому руководству за помощью при запросе вложенных данных с помощью Redshift Spectrum.https://docs.aws.amazon.com/redshift/latest/dg/tutorial-query-nested-data-sqlextensions.html

...