[HADOOP] 만에 의해 종료 LINES 지금은 '\ n'은 줄 바꿈을 지원합니다
HADOOP만에 의해 종료 LINES 지금은 '\ n'은 줄 바꿈을 지원합니다
컬럼은 문자 (30)로 구분되고, 라인은 문자 (31)로 구분되는 경우 I 파일이있다. 나는 열이 줄 바꿈 (\ n을)를 포함 할 수 있기 때문에 주로 이러한 구분 기호를 사용하여, 그래서 하이브의 기본 라인 경계는 우리에게 유용하지 않습니다.
나는 하이브에 라인 구분 기호를 변경하지만 아래의 오류가 발생하는 것을 시도했다 :
종료 LINES는 지금 개행 '\ n을'을 지원합니다.
어떠한 제안?
SerDe 작동 할 수 사용자 정의 쓰기? 새 버전에서 하이브에서이 기능을 향상시키기 위해 어떤 계획이 있나요?
감사
해결법
-
==============================
1.이 도움이, 또는 가장 좋은 대답이지만, 우리는 'textinputformat.record.delimiter'지도를 설정하는 것입니다 일을 결국 어떻게이 문제에 직면했을 때 / 사용되는 값으로 자바 속성을 줄 확실하지합니다. 우리의 경우는 문자열 "{EOL}", 그러나 모든 실제적인 목적을 위해 고유 한 문자열이 될 수 있습니다.
이 도움이, 또는 가장 좋은 대답이지만, 우리는 'textinputformat.record.delimiter'지도를 설정하는 것입니다 일을 결국 어떻게이 문제에 직면했을 때 / 사용되는 값으로 자바 속성을 줄 확실하지합니다. 우리의 경우는 문자열 "{EOL}", 그러나 모든 실제적인 목적을 위해 고유 한 문자열이 될 수 있습니다.
우리는 우리가 올바르게 필드를 철수 할 수 우리의 직선 쉘이 설정합니다. 우리가 이런 짓을하면 우리가 {EOL} 라인 경계를 설정하는 모든 사용자에게 설명해야하고, 사용자의 동생 않았다, 그래서 우리는 가능한 한 빨리 브로에 데이터를 변환 주목해야한다.
set textinputformat.record.delimiter={EOL};
여기에 전체 예입니다.
#example CSV data (fields broken by '^' and end of lines broken by the String '{EOL}' ID^TEXT 11111^Some THings WIth New Lines in THem{EOL}11112^Some Other THings..,?{EOL} 111113^Some crazy thin gs just crazy{EOL}11114^And Some Normal THings. #here is the CSV table we laid on top of the data CREATE EXTERNAL TABLE CRAZY_DATA_CSV ( ID STRING, TEXT STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\136' STORED AS TEXTFILE LOCATION '/archive/CRAZY_DATA_CSV' TBLPROPERTIES('skip.header.line.count'='1'); #here is the Avro table which we'll migrate into below. CREATE EXTERNAL TABLE CRAZY_DATA_AVRO ( ID STRING, TEXT STRING ) STORED AS AVRO LOCATION '/archive/CRAZY_DATA_AVRO' TBLPROPERTIES ('avro.schema.url'='hdfs://nameservice/archive/avro_schemas/CRAZY_DATA.avsc'); #And finally, the magic is here. We set the custom delimiter and import into our Avro table. set textinputformat.record.delimiter={EOL}; INSERT INTO TABLE CRAZY_DATA_AVRO SELECT * from CRAZY_DATA_CSV;
-
==============================
2.문자가 \ n 연구 \ 001 열에서 제거 \ 그래서 나는 Sqoop을의 추출물 --hive - delims-교체 ''중 옵션을 사용하여 그것을 밖으로 일했다.
문자가 \ n 연구 \ 001 열에서 제거 \ 그래서 나는 Sqoop을의 추출물 --hive - delims-교체 ''중 옵션을 사용하여 그것을 밖으로 일했다.
from https://stackoverflow.com/questions/27583736/lines-terminated-by-only-supports-newline-n-right-now by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 대형 데이터 세트를위한 맵리 듀스 코드를 실행하는 동안 Java 힙 공간 오류가 (0) | 2019.10.15 |
---|---|
[HADOOP] 코드 블록에 대한 magic.wand 기능 사용 (0) | 2019.10.15 |
[HADOOP] oozie의 sharelib 설치 (0) | 2019.10.15 |
[HADOOP] 임팔라에서 하이브 UDF를 사용하여 임팔라 1.2.4에서 잘못된 결과를 제공합니다 (0) | 2019.10.15 |
[HADOOP] 하이브 작업은 맵리 듀스 오류 발생 : 로컬 호스트에 hmaster / 127.0.0.1에서 전화 : 44849 연결 예외에 실패 (0) | 2019.10.15 |