본문 바로가기
빅데이터/hive

[hive] 정규식을 이용하여 문자열 검색

by hs_seo 2017. 12. 14.

하이브의 데이터를 처리하다가 보면 문자열이 깨져서 오류가 발생하는 경우가 있다. 

이런 경우 원인과 상관없는 오류를 알리면서 죽기 때문에 원인을 확인하기 힘들 경우가 많다. 


주로 파티션을 결정하는 칼럼의 데이터가 깨지거나, 

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> 



반응형