やりたいこと
athenaでs3においてあるcsvファイルを検索したい
二重引用符(")で囲まれていることによる問題
glueでクローラーかけて、athenaから検索すると思うんですが、
s3に配置してあるインプットデータの各項目が二重引用符(")で囲まれていると、数字項目が消えます。
インプットデータ
クローラー実行でできたテーブル
athena検索結果
⇒数字項目である「operationType」が消えている + 二重引用符(")がそのまま表示されてしまう。
対策「OpenCSVSerde」を使ってみる
変更前
変更後
serdeシリアル化ライブラリを以下に変更
org.apache.hadoop.hive.serde2.OpenCSVSerde
athena検索結果
⇒数字項目である「operationType」の値が表示された + 二重引用符(")は見えなくなった
残る課題
OpenCSVSerde使うと、timestamp型を直でテーブル定義できない・・・
どなたか対策ご存知でしょうか。。。
⇒自己解決:インプットデータが「UNIX 形式の TIMESTAMP」 であればOK
※参考 wikipedia UNIX時間
参考
AWS公式 CSV を処理するための OpenCSVSerDe
Apache Hive CSV Serde