AWS glue - athena インプットデータが二重引用符(")で囲まれている場合

AWS glue - athena インプットデータが二重引用符(")で囲まれている場合:


やりたいこと

athenaでs3においてあるcsvファイルを検索したい


二重引用符(")で囲まれていることによる問題

glueでクローラーかけて、athenaから検索すると思うんですが、

s3に配置してあるインプットデータの各項目が二重引用符(")で囲まれていると、数字項目が消えます。


インプットデータ

image.png


クローラー実行でできたテーブル



image.png



athena検索結果



image.png


⇒数字項目である「operationType」が消えている + 二重引用符(")がそのまま表示されてしまう。


対策「OpenCSVSerde」を使ってみる


変更前

glue => テープル => テーブルの編集


image.png



変更後

serdeシリアル化ライブラリを以下に変更

org.apache.hadoop.hive.serde2.OpenCSVSerde


image.png



athena検索結果



image.png


⇒数字項目である「operationType」の値が表示された + 二重引用符(")は見えなくなった


残る課題

OpenCSVSerde使うと、timestamp型を直でテーブル定義できない・・・

どなたか対策ご存知でしょうか。。。


参考

AWS公式 CSV を処理するための OpenCSVSerDe
Apache Hive CSV Serde


SerDeの読み方は「サーディー」

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)