在雅典娜中创建一张桌子;它给了我以下例外:
输入
没有可行的选择
答案 0 :(得分:25)
不幸的是,目前语法验证错误消息在Athena中描述性不强,此错误可能意味着“几乎”创建表语句中的任何可能的语法错误。
虽然目前很烦人,但您需要检查语法是否遵循Create table documentation
一些例子是:
答案 1 :(得分:23)
答案 2 :(得分:2)
斜线。我的是斜线。我有Athena的DDL,另存为python字符串。
iris.feature_names
已更改为
WITH SERDEPROPERTIES (
'escapeChar'='\\',
'quoteChar'='\"',
'separatorChar'=',')
一切都崩溃了。
必须做到:
WITH SERDEPROPERTIES (
'escapeChar'='\',
'quoteChar'='"',
'separatorChar'=',')
答案 3 :(得分:1)
在我的情况下,这是由于表的最后一列后面有逗号引起的。例如:
CREATE EXTERNAL TABLE IF NOT EXISTS my_table (
one STRING,
two STRING,
) LOCATION 's3://my-bucket/some/path';
在two STRING,
末尾删除逗号后,它工作正常。
答案 4 :(得分:1)
当DDL的语法有一些愚蠢的错误时,通常会发生此错误。有多种答案可以根据状态来解释不同的错误。此问题的简单解决方案是耐心地研究DDL 和逐行验证以下几点:-
答案 5 :(得分:1)
在这里搜索并遵循所有好的答案之后。 我的问题是在 Node.js 中工作我需要删除可选的 ESCAPED BY '\' 在行设置中使用以使我的查询工作。希望这对其他人有帮助。
答案 6 :(得分:0)
在我的情况下,这是 PARTITIONED BY 部分中的逗号,
答案 7 :(得分:0)
就我而言,我缺少S3 URL的单引号
答案 8 :(得分:0)
In my case, it was that one of the table column names was enclosed in single quotes, as per the AWS documentation :( ('bucket')
答案 9 :(得分:0)
我的情况:这是一个外部表,并且位置有错字(因此不存在)
提示对:
答案 10 :(得分:0)
我第一次使用UI时,对我来说并不明显的事情是,如果在创建表'wizard'中遇到错误,则可以取消,并且应该使用失败的查询以新的方式编写查询窗口,供您编辑和修复。
我的数据库有一个连字符,所以我在查询中添加了反引号,然后重新运行它。
答案 11 :(得分:0)
发生这种情况是因为查询中有评论。
当我尝试使用“格式查询”按钮时,我意识到这是一种可能性,它将整个内容变成几乎1行,大部分都被注释掉了。我的猜测是查询解析器在将查询发送到Athena之前运行此格式化程序。
删除评论,运行查询,然后天使振翅高飞!
答案 12 :(得分:0)
正如其他用户所指出的那样,Athena提供的标准语法验证错误消息并不是特别有用。彻底检查其他用户已经提到的必需的DDL语法(请参阅HIVE data types reference),因为它涉及面很广,所以可能非常乏味。
因此,另一个故障排除技巧是让AWS自己的数据解析引擎(AWS Glue)提示您DDL可能关闭的位置。这里的想法是让AWS Glue使用自己的内部规则解析数据,然后向您显示您可能在哪里犯了错误。
具体来说,以下是对我的DDL语句进行故障排除的工作步骤,这给我带来了很多麻烦: