AWS-Athena エラーメッセージ「no viable alternative at input 'create external'」の原因・対処法


この記事の内容

AthenaでCreate Tableした時に「no viable alternative at input 'create external'」エラーメッセージが出たので原因と対処法をご紹介します。

エラー背景

S3にcsvのデータを設置して、Athenaで以下のCreate Tableクエリを実行しました。

CREATE EXTERNAL TABLE test_table (
 col1, 
 col2
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
LOCATION 's3://test-bucket/';

すると、エラーメッセージ(構文エラー)が出ました。

no viable alternative at input 'create external'

原因

Amazon Athena ユーザーガイドを見てみると、
・テーブル名、カラム名にアンダースコア(_)以外の特殊文字を使用している。
・カンマ(,)が抜けている。
などがエラー原因として考えられるようです。

今回の場合は、カラムの文字形式を指定しないのが原因でした。
カラム名の後ろに「string」を追加して、クエリを修正して実行してみると成功しました。

CREATE EXTERNAL TABLE test_table (
 col1 string, 
 col2 string
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
LOCATION 's3://test-bucket/';

最後に

細かいとこですが、AthenaのCreate-Tableの形式を守らないとエラーになりますね。

参考文献

Amazon Athena ユーザーガイド