2015-02-05 2 views
0

내 테이블의 열 (문자열 데이터 형식)에서 내 필요한 데이터를 추출 할 수 regexp_extract를 사용하기 위해 노력하고있어가, 필자는이 쿼리를 사용하여 실패한 쿼리 regexp_extract :하이브

select regexp_extract(concat(column_name,;),'.*a2=?(.*?);',1) from table;

을하지만 오류가 발생합니다 : 나는이 내 기지의 끝에있어

FAILED: ParseException line 1:43 cannot recognize input near '.' '*' 'a2' in select expression

, 아무도 내가 잘못 뭘하는지 말해 수 있을까? regexp_replace를 열에서 사용할 수 있습니까? 도움이 될 것입니다. 내가

답변

1

하이브 버전 0.13.1을 사용하고

마지막으로 하이브 당신이 세미콜론을 탈출해야하는, 그것을 알아 냈다.

희망이 있으면 도움이됩니다.

편집 : 여기 근무 대답 :

regexp_extract(concat(column_name,'\;'),'.*a2=?(.*?)\;',1)

내가 합치 오전 ';' 내 논리가 요구하기 때문에.

+0

당신은 또한 일 답을 포함 할 수 있습니다 – vks

0

아래 스크립트에서 세미콜론을 '\ 073'으로 대체해야합니다.

아파치 하이브 (버전 1.2.1000.2.4.3.3-2는)

select regexp_extract(concat("columna2=blablablatest",'\073'),'.*a2=?(.*?)\073',1);