[HADOOP] 어떻게 하이브 테이블에 여러 줄의 열 데이터를로드? 새 라인 문자를 가진 열
HADOOP어떻게 하이브 테이블에 여러 줄의 열 데이터를로드? 새 라인 문자를 가진 열
나는 몇 줄 이상에 걸쳐 데이터를 포함 Excel 파일의 열을 (안 마지막 열)이있다.
칼럼의 일부 세포가 비어 일부는 단일 라인 항목이 있습니다.
.CSV 파일 또는 엑셀에서 탭 분리가 .txt로 저장하면 모든 멀티 라인 데이터와 몇 단 한 줄의 항목을 큰 따옴표로 생성지고, 빈 필드의 아무도는 따옴표 없습니다. 한 줄의 항목 중 일부는 따옴표하지 않습니다.
그것은 하이브 테이블이 동일한 구조를 갖는 데이터를 저장하는 것이 가능하다? 네, 어떻게이 수행 할 수 있습니다? 나는 따옴표 안에 모든 LF를 탈출 만 실제 EOL로 지난 LF 돌볼 필요가 이해합니다. 그러나 '\ n을'이 발생 순간, 하이브는 새 행에 데이터를합니다.
엑셀에서 데이터의 형식은 다음과 같은 같다 :
|------+------+--------+------------------+-------+------|
|row1: | col1 | col2 | col3(multi-line) | col4 | col5 |
|------+------+--------+------------------+-------+------|
| | | | line 1 of 3 | | |
|row2: | abc | defsa | line 2 of 3 | bcde | hft |
| | | | line 3 of 3 | | |
|------+------+--------+------------------+-------+------|
|row3: | abc2 | defsa2 | (blank) | bcde2 | hft2 |
|------+------+--------+------------------+-------+------|
|row4: | abc3 | defsa3 | single-line1 | bcde3 | hft3 |
|------+------+--------+------------------+-------+------|
|row5: | abc4 | defsa4 | single-line2 | bcde4 | hft4 |
|------+------+--------+------------------+-------+------|
CVS로 저장하는 경우는 다음과 출력 :
ROW1 - COL1, COL2, COL3 (멀티 라인), col4, COL5 ROW2 - abc 방송, defsa, 3 호선의 1 ",,,,,, row3 - 3의 라인이 ,,,,,, row4 - 3 라인 3 ,,,,,, row5 - "BCDE, HFT row6 - abc2, defsa2, bcde2, hft2 row7 - abc3, defsa3, 단일 호선, bcde3, hft3 row8 - abc4, defsa4, 단일 호선 ",,,,,, row9 - "bcde4, hft4
CSV 9 행 엑셀 5 행.
가능하다면, 구성을 변경하고, 여러 줄 열을 유지하지 않고, 하이브 테이블에이 .csv 파일로 저장하는 입력을 평가한다.
해결법
-
==============================
1.이 링크에서 제공되는 SerDe이 포함 된 새로운 라인을 처리 할 수 없습니다. 내 생각 엔 당신이 포함 된 새로운 라인을 원하는 경우, 사용자 정의 SerDe을 만들어야 할 것입니다. 너무 깊게로 보지 않고,이 사용자 정의 SerDe을 만드는 데 도움이 될 수있는 좋은 자원이다.
이 링크에서 제공되는 SerDe이 포함 된 새로운 라인을 처리 할 수 없습니다. 내 생각 엔 당신이 포함 된 새로운 라인을 원하는 경우, 사용자 정의 SerDe을 만들어야 할 것입니다. 너무 깊게로 보지 않고,이 사용자 정의 SerDe을 만드는 데 도움이 될 수있는 좋은 자원이다.
당신은, 예를 하이브를로드하기 전에 데이터를 처리하는 돼지를 사용하여 시도 되세요 당신은 하이브로 이동하기 전에 다른 뭔가의 \ n 개의 문자를 대체 할 수 있습니다. 하지만 당신은 아마 같은 SerDe을 사용하고 있기 때문에 정확하게 돼지에로드 할 수 없다는 동일한 문제로 실행될 수 있습니다.
궁극적으로, 사용자 정의 SerDe가 문제를 해결하는 것입니다,하지만 난 보이지 않아요 또 다른 쉬운 방법이있을 수 있습니다.
from https://stackoverflow.com/questions/39832280/how-to-load-multi-line-column-data-in-hive-table-columns-having-new-line-charac by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 해시에 성능 저하는 TEZ에 돼지 조인 (0) | 2019.09.23 |
---|---|
[HADOOP] 아파치 하둡 일반적인 실패 하둡을 설치하는 동안 (0) | 2019.09.23 |
[HADOOP] 돼지의 현재 타임 스탬프를 얻는 방법 (0) | 2019.09.23 |
[HADOOP] 하둡 오류 : Java 힙 공간이 큰 데이터 세트를 사용하여 (0) | 2019.09.23 |
[HADOOP] 무엇 하둡의 작업 기록 서버이며 왜 모드를 줄지도에서 돼지를 시작하기 전에 히스토리 서버를 시작하는 데 필수입니다? (0) | 2019.09.23 |