[HADOOP] textinputformat.record.delimiter를 하이브 cli / beeline 내에서 기본값으로 재설정하는 방법은 무엇입니까?
HADOOPtextinputformat.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."textinputformat.record.delimiter"변수 상태를 확인 했습니까? 정말 바뀌 었습니까? 아무 값도없이 textinputformat.record.delimiter를 호출하면됩니다. 변경되었지만 작동하지 않는 경우 문제 추적기에 문제를 확실히 작성할 수 있습니다. delimiter param을 기본값으로 되돌려 놓는 방법으로 RESET 명령을 시도 할 수 있습니다. 이 솔루션은 귀하의 경우에는 용납 될 수 있지만 그것은 모든 속성을 기본값으로 재설정합니다.
"textinputformat.record.delimiter"변수 상태를 확인 했습니까? 정말 바뀌 었습니까? 아무 값도없이 textinputformat.record.delimiter를 호출하면됩니다. 변경되었지만 작동하지 않는 경우 문제 추적기에 문제를 확실히 작성할 수 있습니다. delimiter param을 기본값으로 되돌려 놓는 방법으로 RESET 명령을 시도 할 수 있습니다. 이 솔루션은 귀하의 경우에는 용납 될 수 있지만 그것은 모든 속성을 기본값으로 재설정합니다.
-
==============================
2.배달 코드로 유니 코드 alt + A 또는 \ u0001을 사용하십시오.
배달 코드로 유니 코드 alt + A 또는 \ u0001을 사용하십시오.
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
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Giraph - 한 번에 하나의 작업 만 있기 때문에 분할 마스터 / 작업자 모드에서 실행할 수 없습니다. (0) | 2019.08.06 |
---|---|
[HADOOP] oozie 작업에서 다중 libpath를 어떻게 지정합니까? (0) | 2019.08.06 |
[HADOOP] hadoop을 사용하는 동안 로거 API를 사용하여 자바 로그 파일을 작성하는 방법 (0) | 2019.08.06 |
[HADOOP] Hive ParseException- 'end' 'string'근처의 입력을 인식 할 수 없습니다 (0) | 2019.08.06 |
[HADOOP] Hadoop Nodemanager 및 Resourcemanager가 시작되지 않음 (0) | 2019.08.06 |