AWS Афина создает таблицу из запроса выбора - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать таблицу, используя запрос ниже. Если я не создаю таблицу, а просто запускаю деталь из SELECT *, запрос может быть выполнен.

    (SELECT *
    FROM "MyDatabase"."2007" A
    WHERE A."column name a" NOT IN ('U','A+','A','A-')
            AND A."column name b" NOT IN ('SHH','CTP')
            AND NOT EXISTS 
        (SELECT *
        FROM "MyDatabase"."2008" B
        WHERE (B."column name a" = A."column name a"
                AND B."column name b" = A."column name b"
                AND B."column name c" = A."column name c")))

Сообщение об ошибке: «GENERIC_INTERNAL_ERROR: поле заканчивается символом«; »: ожидается«; » но получил 'partOfAColName' в строке 1: ... "

В поиске Google пробел в именах столбцов кажется проблемой. Но я не уверен. У меня есть место в именах столбцов. Имена столбцов автоматически определяются Glue Crawler. Поэтому я не уверен, что смогу что-нибудь с этим сделать. У меня есть около 20 столбцов, хотя все имеют место в середине. Может ли кто-нибудь предложить исправление? Спасибо.

1 Ответ

0 голосов
/ 06 февраля 2020

Когда вы выполняете CREATE TABLE AS ... вы говорите Athena создать таблицу с теми же именами столбцов в вашем SELECT, но в этом случае эти имена столбцов содержат пробелы, и Athena не позволит вам создать столбец имя с пробелом. Чтобы избежать этого, вы можете создать таблицу с именами столбцов, которые соответствуют спецификациям Athena, а затем заполнить эту таблицу INSERT INTO SELECT ... FROM

...