現象
Athena の TIMESTAMP は、よくある日付形式 yyyy-MM-dd HH:mm:ss
を直接サポートしません。
例えば以下のようなCSVファイルからGlueでテーブルを作り、2番めのカラムの型にtimestamp
を設定したとします。
sample.csv
1000,2020-05-27 10:58:00
1001,2020-05-28 10:58:00
ここで、 select * from sample
を実行してもエラーになります。おそらくこんなエラーメッセージが出ます。
HIVE_BAD_DATA: Error parsing field value '2020-05-27 10:58:00' for field 4: For input string: "2020-05-27 10:58:00"
対策
対策は、テーブルのカラム定義ではstring
として、読むときに date_parse
関数を使うことです。
date_by_string
は、2番めのカラム名だと思ってください。
sample.sql
select date_parse(date_by_string,'%Y-%m-%d %H:%i:%s') from sample
参考リンク