복붙노트

[HADOOP] textinputformat.record.delimiter를 하이브 cli / beeline 내에서 기본값으로 재설정하는 방법은 무엇입니까?

HADOOP

textinputformat.record.delimiter를 하이브 cli / beeline 내에서 기본값으로 재설정하는 방법은 무엇입니까?

textinputformat.record.delimiter를 기본값이 아닌 값으로 설정하면 아래 데모에 표시된 것처럼 여러 행 텍스트를로드하는 데 유용합니다. 그러나 cli를 종료하고 다시 열지 않고이 매개 변수를 기본값으로 다시 설정하지 못했습니다.

다음 옵션 중 어느 것도 작동하지 않았습니다 (또는 다른 시도가 없었 음)

set textinputformat.record.delimiter='\n';
set textinputformat.record.delimiter='\r';
set textinputformat.record.delimiter='\r\n';
set textinputformat.record.delimiter='
';

reset;

어떤 생각?

감사

create table mytable (mycol string);
insert into mytable select concat('Hello',unhex('A'),'world');    
select concat('>>>',mycol,'<<<') as mycol from mytable;

NewLine은 레코드 분리 문자로 해석되어 2 개의 레코드를 삽입합니다.

+-------------+
|    mycol    |
+-------------+
| >>>Hello<<< |
| >>>world<<< |
+-------------+
set textinputformat.record.delimiter='\0';

truncate table mytable;
insert into mytable select concat('Hello',unhex('A'),'world');    
select concat('>>>',mycol,'<<<') as mycol from mytable;

전체 텍스트가 하나의 레코드로 삽입되었습니다.

+----------+
|  mycol   |
+----------+
| >>>Hello |
| world    |
| <<<      |
+----------+

구분 기호를 개행 문자로 다시 변경하려고합니다.

set textinputformat.record.delimiter='\n';

truncate table mytable;
insert into mytable select concat('Hello',unhex('A'),'world');    
select concat('>>>',mycol,'<<<') as mycol from mytable;

여전히 같은 결과를 얻습니다

+----------+
|  mycol   |
+----------+
| >>>Hello |
| world    |
| <<<      |
+----------+

해결법

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

    1."textinputformat.record.delimiter"변수 상태를 확인 했습니까? 정말 바뀌 었습니까? 아무 값도없이 textinputformat.record.delimiter를 호출하면됩니다. 변경되었지만 작동하지 않는 경우 문제 추적기에 문제를 확실히 작성할 수 있습니다. delimiter param을 기본값으로 되돌려 놓는 방법으로 RESET 명령을 시도 할 수 있습니다. 이 솔루션은 귀하의 경우에는 용납 될 수 있지만 그것은 모든 속성을 기본값으로 재설정합니다.

    "textinputformat.record.delimiter"변수 상태를 확인 했습니까? 정말 바뀌 었습니까? 아무 값도없이 textinputformat.record.delimiter를 호출하면됩니다. 변경되었지만 작동하지 않는 경우 문제 추적기에 문제를 확실히 작성할 수 있습니다. delimiter param을 기본값으로 되돌려 놓는 방법으로 RESET 명령을 시도 할 수 있습니다. 이 솔루션은 귀하의 경우에는 용납 될 수 있지만 그것은 모든 속성을 기본값으로 재설정합니다.

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

    2.배달 코드로 유니 코드 alt + A 또는 \ u0001을 사용하십시오.

    배달 코드로 유니 코드 alt + A 또는 \ u0001을 사용하십시오.

  3. from https://stackoverflow.com/questions/42672451/how-to-reset-textinputformat-record-delimiter-to-its-default-value-within-hive-c by cc-by-sa and MIT license