#この記事の内容
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 ユーザーガイド