AWS Athena从查询语句创建表

5
我试图使用以下查询创建表。如果我不创建表,而只是运行 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'...”。
从谷歌搜索来看,列名中的空格似乎是问题所在。但我不确定。我的列名中有空格。这些列名由Glue爬虫自动检测。因此,我不确定是否可以对此做出任何改变。我有大约20个列,所有列中间都有空格。有人能提供修复建议吗?谢谢。
1个回答

7
执行CREATE TABLE AS...时,您正在告诉Athena创建一个与SELECT中具有相同列名的表,但在这种情况下,这些列名包含空格,而Athena不允许您创建带空格的列名。为避免这种情况,您可以按照Athena的规格创建具有符合规格的列名的表,然后使用INSERT INTO SELECT...FROM填充该表。

1
对我来说,发生的情况是我可以创建并运行包含空格的列的DDL创建表语句,但现在我无法插入行;/ - luisvenezian
哇,谢谢。报告错误的方式真是太糟糕了——我本来以为数据本身有问题! - Codek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接