AWS Glue 테이블에 OpenCSVSerde를 설정해 보았습니다.

하고 싶은 일



athena에서 s3에서 csv 파일을 검색하고 싶습니다.

큰따옴표(")로 둘러싸인 문제



glue에서 크롤러를 걸고 athena에서 검색한다고 생각합니다.
s3에 배치된 입력 데이터의 각 항목이 큰 따옴표(")로 묶여 있으면 숫자 항목이 사라집니다.

입력 데이터





크롤러 실행으로 만든 테이블





athena 검색결과





⇒ 숫자 항목인 「operationType」이 사라지고 있다 + 큰따옴표(")가 그대로 표시되어 버린다.

대책 「OpenCSVSerde」를 사용해 본다



변경 전



glue => 테이블 테이블 => 테이블 편집


변경 후



serde serialization 라이브러리를 아래로 변경
org.apache.hadoop.hive.serde2.OpenCSVSerde


athena 검색결과





⇒숫자 항목인 「operationType」의 값이 표시되었다 + 큰따옴표(")는 보이지 않게 되었다

남은 과제



OpenCSVSerde를 사용하면 타임 스탬프 유형을 직접 테이블 정의 할 수 없습니다 ...
누군가 대책 알고 계십니까? . .
⇒자기해결:인풋 데이터가 「UNIX 형식의 TIMESTAMP」이면 OK
※ 참고 wikipedia UNIX 시간

참고



AWS 공식 CSV를 처리하기 위한 OpenCSVSerDe
Apache Hive CSV Serde

SerDe를 읽는 법은 "사디"

좋은 웹페이지 즐겨찾기