tl;dr
WITH SERDEPROPERTIES ('ignore.malformed.json' = 'true')
を付けてデシリアライズするだけ。
経緯
CloudTrailのログをAthenaで見ようと思い、以下の記事の通りにデシリアライズしていくつかクエリを実行した。
するとこんなエラーが出た。
Row is not a valid JSON Object - JSONException: Duplicate key "tag"
適当にググったところこれが怪しかったが、
エラーが微妙に違う。HIVE_CURSOR_ERROR
は今回出ていない。
HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONException: Duplicate key
デシリアライザのドキュメントを見てみたところ、
ignore.malformed.json
オプション。TRUE に設定すると、不正な形式の JSON 構文を無視できます。デフォルト: FALSE。
という記述が。試したところエラーは出なくなった。
CloudTrailのJsonが壊れていたのだろうか、、、?