AWS Athena通过选择查询创建表

时间:2020-02-04 21:31:32

标签: sql amazon-athena

我正在尝试使用下面的查询创建表。如果我不创建表,而只运行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:字段以';'结尾:预期为';'但在第1行出现了'partOfAColName'...”

在Google搜索中,列名中的空格似乎是问题所在。但我不确定。列名中有空格。列名称由Glue Crawler自动检测。因此,我不确定是否可以做任何事情。我大约有20列,但中间都有空格。有人可以建议解决办法吗?谢谢。

1 个答案:

答案 0 :(得分:2)

执行CREATE TABLE AS ...时,您要告诉Athena在SELECT中创建具有相同列名的表,但是在这种情况下,这些列名包含空格,Athena不允许您创建列用空格命名。为避免这种情况,您可以使用符合雅典娜规范的列名创建表,然后使用INSERT INTO SELECT ... FROM填充该表

相关问题