복붙노트

[HADOOP] 하이브 : 분할 문자열을 사용하여 정규 표현식

HADOOP

하이브 : 분할 문자열을 사용하여 정규 표현식

나는 :: 구분되는 단어의 문자열을 가지고있다. 어떻게 하이브 UDF의 regexp_extract () 문자열에서 단어를 추출하기 위해 사용할 수 있습니까?

해결법

  1. ==============================

    1.

    regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',1) as word1
    

    OUTPUT : 2foa1fa

    regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',2) as word2
    

    OUTPUT : 12hjk

    지금은 단지 문자열 리터럴의 장소에서 열 이름을 고수하고 당신이 가서 잘되어야합니다.

    당신은 또한뿐만 아니라 배열 위치에 따라 배열 한 후 쿼리를 생성 분할 기능을 사용할 수 있습니다. 다음과 같이 보일 것이다 :

    select my_array[2] from 
        (select split('2foa1fa::12hjk','\\::') as my_array from my_table) b;
    

    OUTPUT : 12hjk

  2. from https://stackoverflow.com/questions/31351479/hive-split-string-using-regex by cc-by-sa and MIT license