CSV SerDe
CSV SerDe
CSV SerDe는 CSV 데이터를 Hive 테이블로 읽고 쓸 때 사용해요. 대부분의 CSV 데이터는 org.apache.hadoop.hive.serde2.OpenCSVSerde로 처리할 수 있어요.
출처: 문서
본문
사용 가능한 버전
CSVSerde는 Hive 0.14 이상에서 사용할 수 있습니다.
배경
CSV SerDe는 https://github.com/ogrodnek/csv-serde를 기반으로 HIVE-7777에서 Hive 배포판에 추가되었습니다.
제한 사항
이 SerDe는 모든 컬럼을 String 타입으로 취급합니다. 이 SerDe로 문자열이 아닌 컬럼 타입을 가진 테이블을 만들더라도, DESCRIBE TABLE 출력은 문자열 컬럼 타입을 보여줍니다. 타입 정보는 SerDe에서 가져옵니다. 테이블의 컬럼을 원하는 타입으로 변환하려면 테이블 위에 원하는 타입으로 CAST하는 뷰를 만들 수 있습니다.
사용법
이 SerDe는 대부분의 CSV 데이터에 동작하지만, 임베디드 줄바꿈(embedded newlines)은 처리하지 않습니다. SerDe를 사용하려면 정규화된 클래스 이름 org.apache.hadoop.hive.serde2.OpenCSVSerde를 지정하세요.
문서는 원본 문서 https://github.com/ogrodnek/csv-serde를 기반으로 작성되었습니다.
테이블 만들기, CSV 속성 지정하기
CREATE TABLE my_table(a string, b string, ...)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = "\t",
"quoteChar" = "'",
"escapeChar" = "\\"
)
STORED AS TEXTFILE;
지정하지 않았을 때의 기본 separator, quote, escape 문자
DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER "
DEFAULT_SEPARATOR ,
SerDe에 대한 일반 정보는 개발자 가이드의 Hive SerDe를 참고하세요. 입출력 처리에 대한 자세한 내용은 SerDe도 참고하세요.
버전
CSVSerde는 Hive 0.14 이상에서 빌드·테스트되었으며, Hive 배포판에 번들된 Open-CSV 2.3을 사용합니다.
| Hive 버전 | Open-CSV 버전 |
|---|---|
| Hive 0.14 이상 | 2.3 |
더 알아보기 (Learn more)
SerDe의 일반 개념과 입출력 처리를 다루는 SerDe 문서를 함께 보면 좋아요. 또 다른 포맷 처리 도구로는 AvroSerDe가 있어요.