[HADOOP] multidelimeter를 사용하여 하이브에 데이터 삽입
HADOOPmultidelimeter를 사용하여 하이브에 데이터 삽입
multidelimeter를 사용하여 하이브에 데이터를 삽입하는 방법 및 구분 기호가 지정되지 않은 컬럼 사이에 데이터를 삽입하는 방법.
아래는 내 데이터입니다.
25380 20130101 2.514 -135.69 58.43 8.3 1.1 4.7 4.9 5.6 0.01 C 1.0 -0.1 0.4 97.3 36.0 69.4 -99.000 -99.000 -99.000 -99.000 -99.000 -9999.0 -9999.0 -9999.0 -9999.0 -9999.0
25380 20130102 2.514 -135.69 58.43 3.0 -0.3 1.4 1.2 0.0 0.35 C 1.3 -1.0 -0.1 100.0 89.5 98.2 -99.000 -99.000 -99.000 -99.000 -99.000 -9999.0 -9999.0 -9999.0 -9999.0 -9999.0
내 하이브 테이블에 처음 7 열만 삽입하고 위의 데이터에 대한 txt 파일을 갖고 싶습니다.
테이블 스크립트 생성 :
CREATE TABLE hotcold (a int,b int,c float,d float,e float,f float,g float,h string,i string,j string,k string,l string,m string,n string,o string,p string,q string,
r string,s string,t string,u string,v string,w string,x string,y string,z string,aa string,bb string,cc string,dd string,ee string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ('input.regex'='\\s+');
내 데이터 삽입 스크립트는 다음과 같습니다.
LOAD DATA LOCAL INPATH '/home/cloudera/WeatherData.txt' into table hotcold;
아래 내 선택 진술과 오류입니다 :
select * from hotcold;
오류 :
Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: Number of matching groups doesn't match the number of columns
해결법
-
==============================
1.각 열에는 대응하는 캡처 그룹 ()이 정규 표현식에 있어야합니다.
각 열에는 대응하는 캡처 그룹 ()이 정규 표현식에 있어야합니다.
아래 예제에서 문자열 시작 부분의 첫 번째 그룹 ^ (\\ d +) -는 양의 정수에 해당하고,
\\ s + - 하나 이상의 공백 구분 기호,
두 번째 캡처 그룹은 양의 정수 (\\ d +),
다시 \\ s + - 하나 이상의 공백 구분 기호,
세 번째 캡처 그룹 - ([+ -]? [0-9.] +) - 매우 엄격한 형식이 아닌 float 형식으로, + 기호 및 didits 및 dots 조합
및. * 문자열의 끝 부분에있는 모든 문자를 허용하는 끝에. 정규식에 다른 모든 열을 추가합니다. 예제에는 세 개의 열 (세 개의 캡처 그룹)에 대한 정규식이 포함되어 있습니다.
WITH SERDEPROPERTIES ('input.regex'='^(\\d+)\\s+(\\d+)\\s+([+-]?[0-9.]+).*')
자세한 내용은 읽기 : 정규식을 사용하여 하이브 테이블의 필드 추출
from https://stackoverflow.com/questions/54088870/insert-data-in-hive-using-multidelimeter by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HDFS 중고품 서버가 HDFS가 아닌 현지 FS의 내용을 반환합니다. (0) | 2019.06.26 |
---|---|
[HADOOP] 복잡한 Json 데이터를 하이브로 가져 오기 (0) | 2019.06.26 |
[HADOOP] hadoop에서 스택 오버플로 오류 발생 (0) | 2019.06.26 |
[HADOOP] 지도 축소 프로그램에서 PDF 파일을 구문 분석하는 방법은 무엇입니까? (0) | 2019.06.26 |
[HADOOP] 왜 YARN에 mapreduce.jobtracker.address 구성이 있습니까? (0) | 2019.06.26 |