복붙노트

[HADOOP] 하이브에서 줄 바꿈 문자 처리

HADOOP

하이브에서 줄 바꿈 문자 처리

하이브로 테이블을 만들었습니다.

Create table(id int, Description String)  

내 데이터는 다음과 같이 보입니다.

 
1|This will return corrupt data since there is a ',' in the first string.
     some text
     Change the data  
2|There is prob in reading data 
    sometext

기본 행 종결자가 \ n 이후 데이터가 하이브에로드 된 후 설명 열을 하이브로 읽을 수 없으므로 NULL 값을 표시합니다. 하이브에로드하기 전에 개행을 처리하는 방법을 제안 할 수 있습니까?

해결법

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

    1.이 질문은 오래되었지만 몇 가지 옵션이 있습니다. FIELD TERMINATED BY로 제어 할 수 없습니다. FILEDS TERMINATED BY는 레코드가 아닌 필드를 종료하는 것만 제어하기 때문입니다. 하이브의 레코드는 개행 문자로 종료되도록 하드 코딩되어 있습니다 (LINES TERMINATED BY 절이 있어도 구현되지 않습니다).

    이 질문은 오래되었지만 몇 가지 옵션이 있습니다. FIELD TERMINATED BY로 제어 할 수 없습니다. FILEDS TERMINATED BY는 레코드가 아닌 필드를 종료하는 것만 제어하기 때문입니다. 하이브의 레코드는 개행 문자로 종료되도록 하드 코딩되어 있습니다 (LINES TERMINATED BY 절이 있어도 구현되지 않습니다).

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

    2.hive-site.xml에 below 속성을 추가하거나 임시 하이브 세션 레벨을 시도해보십시오.

    hive-site.xml에 below 속성을 추가하거나 임시 하이브 세션 레벨을 시도해보십시오.

    hive.query.result.fileformat = SequenceFile

  3. ==============================

    3.기본적으로 하이브는 구분 기호로 NEWLINE ( ​​'\ N')을 사용합니다. 다음을 사용하여 구분 기호를 변경할 수 있습니다.

    기본적으로 하이브는 구분 기호로 NEWLINE ( ​​'\ N')을 사용합니다. 다음을 사용하여 구분 기호를 변경할 수 있습니다.

        ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";
    
  4. from https://stackoverflow.com/questions/26339564/handling-newline-character-in-hive by cc-by-sa and MIT license