[HADOOP] HIVE에서 외부 테이블을로드 할 때 나는 브래킷을 무시 어떻게
HADOOPHIVE에서 외부 테이블을로드 할 때 나는 브래킷을 무시 어떻게
나는 HIVE에서 외부 테이블로 돼지 스크립트의 추출물을로드하기 위해 노력하고있어. 돼지는 다음과 같이 괄호 () (? 튜플) 사이의 각 행을 동봉 :
(1,2,3, a) (2,4,5, b) (4,2,6, c)
나는 실제로 정수로 첫 번째 열에 대한 null 값을 초래하는 브래킷을 무시 HIVE을 말할 수있는 방법을 찾을 수 없습니다.
진행 방법에 대한 어떤 생각?
나는 돼지에 평평하게 명령을 사용할 수 있습니다 알고 있지만 나는 또한 HIVE에서 직접 이러한 파일을 처리하는 방법을 배우고 싶습니다.
해결법
-
==============================
1.한 단계에서이 작업을 수행 할 수있는 방법은 없습니다. 당신은 돼지 또는 추가 하이브 INSERT INTO에 평평하게 사용 될 또 다른 단계를해야 할 것이다.
한 단계에서이 작업을 수행 할 수있는 방법은 없습니다. 당신은 돼지 또는 추가 하이브 INSERT INTO에 평평하게 사용 될 또 다른 단계를해야 할 것이다.
하이브에서 당신은 외부 테이블에서 읽고 원하는 열을 만든 다음 새 테이블로 그를로드하는 데 몇 시간 분할 (문자열 필드, 문자열 패턴)을 사용할 수 있습니다. 뭔가 다른 그 형식의 데이터를 예상하고이 파일에서 읽고 않는 한 난 항상 당신이 원하는 형식으로 돼지 출력을 가진 향하다 것입니다. 그것은 모든 데이터의 비싼 다시 읽기를 저장합니다.
-
==============================
2.벤 말했듯이 한 번에 할 수있는 방법입니다 ..하지만 당신은 하이브에 또 하나 개의 임시 테이블을 생성하여 그것을 할 수 있습니다.
벤 말했듯이 한 번에 할 수있는 방법입니다 ..하지만 당신은 하이브에 또 하나 개의 임시 테이블을 생성하여 그것을 할 수 있습니다.
나는 또 하나 개의 테이블이 더 복잡하게 만드는 중이라서 .. 그러나 그것은 나를 위해 일한 확실하지합니다.
create external table A_TEMP (first string,second int,third int,fourth string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '/user/hdfs/Adata';
create external table A (first int,second int,third int,fourth string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '/user/hdfs/Afinaldata';
이제 삽입 된 데이터를 수
insert into table A select cast(substr(first, 2, length(first) - 2) as int),second,third,substr(fourth, 1,length(fourth) - 1 ) from A_TEMP;
나는 타입 캐스팅 성능을 명중 알고 ..하지만 주어진 시나리오 이것은 내가 가지고 올 수있는 최선이다.
from https://stackoverflow.com/questions/33567778/how-do-i-ignore-brackets-when-loading-exteral-table-in-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 하이브에서 특정 시간대의 현재 시간을 얻을 수 있습니다 (0) | 2019.09.28 |
---|---|
[HADOOP] 때 java.io.IOException : 하둡의 바이너리 실행 널 \ 빈 \의 winutils.exe을 찾을 수 없습니다 (0) | 2019.09.28 |
[HADOOP] 하둡 - 감속기가 시작되지 않는 (0) | 2019.09.27 |
[HADOOP] PHP는 hiveserver이 문제 (0) | 2019.09.27 |
[HADOOP] 프로그램이 중단 될 때 스파크 병합 파일을 푼다 (0) | 2019.09.27 |