亚马逊雅典娜:输入时没有可行的选择

问题描述 投票:23回答:7

在雅典娜创造一张桌子;它给了我以下例外:

输入时没有可行的选择

amazon-web-services amazon-athena
7个回答
28
投票

不幸的是,目前语法验证错误消息在Athena中不是非常具有描述性,此错误可能意味着“几乎”在create table语句中出现任何可能的语法错误。

虽然这很烦人,但您需要检查语法是否遵循Create table documentation

一些例子是:

  • 反引号不到位(已经指出)
  • 缺少/额外逗号(请记住,最后一列在列定义后不需要逗号
  • 缺少空间
  • 更多 ..

25
投票

表名中不允许连字符..(虽然向导允许它)..只需删除连字符,它就像一个魅力


2
投票

当DDL的语法有一些愚蠢的错误时,通常会发生此错误。有几个答案可以解释基于状态的不同错误。此问题的简单解决方案是耐心地查看DDL并逐行验证以下几点: -

  1. 检查是否缺少逗号
  2. 不平衡`(反引号运算符)
  3. HIVE不支持的数据类型不兼容(HIVE DATA TYPES REFERENCE
  4. 不平衡的逗号
  5. 表名中的连字符

1
投票

在我的情况下,这是因为表格中最后一列之后的尾随逗号。例如:

CREATE EXTERNAL TABLE IF NOT EXISTS my_table (
  one STRING,
  two STRING,
) LOCATION 's3://my-bucket/some/path';

我删除了two STRING,末尾的逗号后,它工作正常。


0
投票

在我的例子中,它是PARTITIONED BY部分中的额外逗号,


0
投票

就我而言,我错过了S3 URL的单引号


0
投票

就我而言,根据AWS文档,其中一个表列名称用单引号括起来:(('bucket')

© www.soinside.com 2019 - 2024. All rights reserved.