복붙노트

[HADOOP] 하이브의 문자를 대체하는 방법?

HADOOP

하이브의 문자를 대체하는 방법?

탭 문자 '\ t'가 포함될 수있는 하이브 테이블에 문자열 열 설명이 있지만 하이브를 외부 응용 프로그램에 연결할 때 이러한 문자가 일부보기를 엉망으로 만듭니다. 해당 열의 모든 탭 문자를 제거하는 간단한 방법이 있습니까? 그것을하기 위해 간단한 파이썬 프로그램을 실행할 수는 있지만 더 나은 해결책을 찾고 싶습니다.

해결법

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

    1.regexp_replace UDF가 내 작업을 수행합니다. 아래는 아파치 위키의 정의와 사용법입니다.

    regexp_replace UDF가 내 작업을 수행합니다. 아래는 아파치 위키의 정의와 사용법입니다.

    regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT):
    

    INITIAL_STRING의 모든 부분 문자열을 대체 한 문자열을 반환합니다. REPLACEMENT의 인스턴스로 PATTERN에 정의 된 Java 정규 표현식 구문과 일치하는

    예 : regexp_replace ( "foobar", "oo | ar", "")는 fb를 반환합니다.

  2. ==============================

    2.커스텀 SerDe가 그것을 할 수있는 방법 일 수 있습니다. 또는 regex_replace와 함께 어떤 종류의 중재 프로세스를 사용할 수 있습니다.

    커스텀 SerDe가 그것을 할 수있는 방법 일 수 있습니다. 또는 regex_replace와 함께 어떤 종류의 중재 프로세스를 사용할 수 있습니다.

    create table tableB as 
    select 
        columnA
        regexp_replace(description, '\\t', '') as description
    from tableA
    ;
    
  3. ==============================

    3.translate ()를 사용할 수도 있습니다. 세 번째 인수가 너무 짧으면 두 번째 인수의 해당 문자가 삭제됩니다. regexp_replace ()와는 달리 특수 문자는 걱정할 필요가 없습니다. 소스 코드.

    translate ()를 사용할 수도 있습니다. 세 번째 인수가 너무 짧으면 두 번째 인수의 해당 문자가 삭제됩니다. regexp_replace ()와는 달리 특수 문자는 걱정할 필요가 없습니다. 소스 코드.

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringFunctions

  4. ==============================

    4.

    select translate(description,'\\t','') from myTable;
    
  5. ==============================

    5.현재로서는 OOTB 기능이 없습니다. 이를 달성하는 한 가지 방법은이를 수행 할 사용자 지정 InputFormat 및 / 또는 SerDe를 작성하는 것입니다. 이 JIRA를 유용하게 사용할 수 있습니다 : https://issues.apache.org/jira/browse/HIVE-3751. (귀하의 문제와 직접적인 관련이 없음).

    현재로서는 OOTB 기능이 없습니다. 이를 달성하는 한 가지 방법은이를 수행 할 사용자 지정 InputFormat 및 / 또는 SerDe를 작성하는 것입니다. 이 JIRA를 유용하게 사용할 수 있습니다 : https://issues.apache.org/jira/browse/HIVE-3751. (귀하의 문제와 직접적인 관련이 없음).

  6. from https://stackoverflow.com/questions/18090481/how-to-replace-characters-in-hive by cc-by-sa and MIT license