SW Engineering/Hadoop

Hive에서 콤마(,)로 컬럼 구분 및 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기

SungWookKang 2020. 1. 3. 00:37
반응형

Hive에서 콤마(,) 컬럼 구분 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기

 

·       Version : Hadoop 3.0.0-cdh6.3.2

 

Hive 테이블에서 데이터를 로드할때, 특정 구분자를 이용해서 파싱하는 경우 파싱의 규칙을 미리 테이블을 생성할때 정의해야 한다. 아래 스크립트는 콤마(,) 컬럼을 구분하는 데이터에서 파싱을 하지 않아야 하는 콤마(,) 데이터는 더블 쿼테이션(“”)으로 감싸서 해당 문장이 파싱되지 않도록 하는 규칙이다.

 

예를 들어 아래와 같은 콤마로 구분된 텍스트 데이터가 있다고 , 컬럼 Col_1, Col_2, Col_3 파싱한다.

col_1,col_2,"col_3(a=3&b=40&c=NOTES&cid=1,10,33)"

 

create table tbl_a (

col_1 string

col_2 string

col_3 string

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"")

 

이미 테이블이 생성되어 있는 경우에는 ALTER 구문으로 테이블의 속성을 변경할 있다.

ALTER TABLE tbl_a set SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"")

 

 

 

2020-01-02 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, Hive, 하이브, 하이브 콤마 파싱, SERDE, SERDEPROPERTIES, 서데, 서데 속성, ROW FORAT, 컬럼 파싱

반응형

'SW Engineering > Hadoop' 카테고리의 다른 글

임시 데이터 처리를 위한 매퍼 환경 설정 및 셔플 환경 설정  (0) 2020.01.08
MapReduce 메모리 설정  (0) 2020.01.07
MapReduce JobTracker  (0) 2019.12.31
MapReduce (맵리듀스)  (0) 2019.12.28
Hive Buckets (버켓)  (0) 2019.12.27