하이브의 데이터를 처리하다가 보면 문자열이 깨져서 오류가 발생하는 경우가 있다.
이런 경우 원인과 상관없는 오류를 알리면서 죽기 때문에 원인을 확인하기 힘들 경우가 많다.
주로 파티션을 결정하는 칼럼의 데이터가 깨지거나,
where 조건문에 = 비교를 하는 데이터가 깨져서 발생하는 경우가 많다.
이런 경우 정규식을 이용하여 오류 데이터를 먼저 검증하여 오류를 해결할 수 있다.
정규식을 이용한 검증은 다음과 같다.
<정규식을 이용한 검증>
hive> SELECT 'abc' RLIKE '^[a-zA-Z0-9]*$';
OK
true
Time taken: 0.034 seconds, Fetched: 1 row(s)
<깨진문자열 찾기>
hive> SELECT '�bc' RLIKE '^[a-zA-Z0-9]*$';
OK
false
Time taken: 0.026 seconds, Fetched: 1 row(s)
<Ascii Code 내의 값 확인>
hive> SELECT 'abc' RLIKE '^[\x00-\x7Fa-zA-Z0-9[.],f~!@#$%^&*()-_+|<>?:{}\"]*$';
OK
true
Time taken: 0.028 seconds, Fetched: 1 row(s)
hive>
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] explode, lateral view 사용 예제 (0) | 2017.12.26 |
---|---|
[hive] drop table partitions 의 null 오류 (0) | 2017.12.21 |
[hive] JSON 문자열을 맵으로 변환(json string to map) (0) | 2017.12.12 |
[hive] 하이브 성능 개선#1 - CBO, Stat 를 이용하여 통계 쿼리 성능 개선 (0) | 2017.11.29 |
[hive] dynamic partition 에서 리듀서를 하나만 사용하는 오류 수정 (0) | 2017.11.15 |