728x90
Hive Table 생성 시 Multi-character delimiter 적용 방법
Hive 에서 table을 만들 때 그냥 row format delimited fields terminated by '___' 이런 식으로 하면 !!
그냥 '_' 캐릭터 하나로 인식한다. 여러개의 문자를 한꺼번에 인식하지 않는 다는 말이다.
그럴 때는
create table testtale
(
logflag string, tst string, isp string, device string, model string,
os_ver string, app_ver string, ukey string, ad_id string, dpx string,
dpy string,logtype string, log string, curadm string
) partitioned by (dt string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="___") STORED AS TEXTFILE;
위와 같은 방식으로
지정해 줘야 한다.
저방식 말고도 regex 표현으로 정의 해주는 방법도 있다.
그럴 경우에는 사용하는 클래스명이 따로 있다.
추가 적으로 위와 같이 생성한 테이블에서 클래스 파일 Not Found라고 뜨는 경우 !!
Hive Server 호스트에
hive auxlib 폴더 안에 hive-contrib.jar 를 복사해주면 됨
'프로그래밍 > hive' 카테고리의 다른 글
Hive 특정 컬럼 제외 하고 선택하기 (0) | 2018.02.13 |
---|---|
HiveServer Too many open file error (0) | 2018.01.24 |
Hive MIN/MAX STRUCT 쿼리 사용 (0) | 2017.12.25 |
Hive CLI 기본 셋팅 (0) | 2017.12.25 |
Hive 성능 향상 방안 (0) | 2016.08.18 |